#フォルダ(ディレクトリ)のサイズ(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.");
}