Dica publicada pelo pessoal da BufaloInfo.
Não há ainda, nas classes do framework, um meio de obter o tamanho total de um diretório. Por isso o tamanho total de um diretório deve ser obtido pela soma do tamanho de seus arquivos e diretórios, da seguinte forma :
public static long Size(System.IO.DirectoryInfo dirInfo) { long total = 0; // Obtem o tamanho total dos arquivos no diretório foreach(System.IO.FileInfo file in dirInfo.GetFiles()) total += file.Length; // Obtem o tamanho total dos sub-diretórios da pasta foreach(System.IO.DirectoryInfo dir in dirInfo.GetDirectories()) total += Size(dir); return total; } |
É interessante observar que esta função é recursiva : Ao encontrar uma pasta a função chama a si mesma para poder calcular o tamanho da pasta e desta forma somar ao tamanho total.
No link abaixo há uma explicação mais detalha sobre Recursividade e os cuidados a considerar em seu uso:
http://pt.wikipedia.org/wiki/Recursividade