LoginSignup
1
4

More than 3 years have passed since last update.

フォルダのサイズを取得する

Last updated at Posted at 2019-09-11

フォルダ(ディレクトリ)のサイズ(Byte)を取得

[方針] フォルダサイズを直接取得する関数は用意されていないので,フォルダ内部のファイルサイズを加算して求める.

フォルダ内に入れ子のフォルダがない場合

Hage(string Path) 呼び出し元
string Pathは求めたいフォルダのパス
long FilesSizeにフォルダ内のファイルサイズの合計

GetDirectorySize.cs
    using System.Windows.Forms;//MessageBox用
    using System.IO;
        public static long GetDirectorySize(DirectoryInfo dirInfo) {
            long DirectorySize = 0;
            foreach (FileInfo fi in dirInfo.GetFiles())//フォルダ内の全ファイルを取得
                DirectorySize += fi.Length;//フォルダ内の全ファイルのサイズを加算
            return DirectorySize;
        }
        private void Hage(string Path) {
            long FilesSize = GetDirectorySize(new DirectoryInfo(Path));
            MessageBox.Show("The size of this folder is "+FilesSize.ToString()+" Byte.");
        }

フォルダ内のサブフォルダすべてのサイズを取得したい場合

[方針] サブフォルダのサイズを再帰呼び出しで合算

long FolderSizeにフォルダサイズを格納

GetDirectorySize.cs
    using System.Windows.Forms;//MessageBox用
    using System.IO;
        public static long GetDirectorySize(DirectoryInfo dirInfo) {
            long DirectorySize = 0;
            foreach (FileInfo fi in dirInfo.GetFiles())//フォルダ内の全ファイルを取得
                DirectorySize += fi.Length;//フォルダ内の全ファイルのサイズを加算
            foreach (DirectoryInfo di in dirInfo.GetDirectories())//サブフォルダを取得
                DirectorySize += GetDirectorySize(di);//サブフォルダのサイズを合算
            return DirectorySize;
        }
        private void Hage(string Path) {
            long FolderSize = GetDirectorySize(new DirectoryInfo(Path));
            MessageBox.Show("The size of this folder is "+FolderSize.ToString()+" Byte.");
        }

参照
https://dobon.net/vb/dotnet/file/foldersize.html

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4