ディレクトリのサイズを求めるメソッド

2006-01-09
このエントリーをはてなブックマークに追加

ディレクトリのサイズを一発で求めるメソッドはなかった。
つまり、ディレクトリのサイズを求めるには、そのディレクトリ内のすべてのファイルサイズを加算していく必要がある。
FTPコマンドでディレクトリサイズもとめる方法と同じである。
APIを直叩きすれば別の方法があるのかもしれないが、C#としてはこれが簡単であろう。

public long GetDirSize(DirectoryInfo dirBaseDir)
{
    long lngDirSize = 0;
    //ターゲットディレクトリのすべてのファイルの加算
    foreach (FileInfo filFilesInDir in dirBaseDir.GetFiles())
    {
        lngDirSize += filFilesInDir.Length;
    }
    //ターゲットディレクトリのすべてのディレクトリの加算
    foreach (DirectoryInfo dirDirInBaseDir in dirBaseDir.GetDirectories())
    {
        lngDirSize += GetDirSize(dirDirInBaseDir);
    }

    return lngDirSize;
}

Tags: