1.前言:
計算某個檔案夾下的檔案大小,並可以用不同的單位(KB,MB,GB)顯示。
2.說明:
有關Directory類別可參考:
http://msdn.microsoft.com/en-us/library/system.io.directory(v=vs.100).aspx
程式碼:
public enum SizeFormat
{
Bytes,
KiloBytes,
MegaBytes,
GigaBytes
}
public static double DirectorySize(DirectoryInfo directoryInfo)
{
double Size = 0;
FileInfo[] fi = directoryInfo.GetFiles();
foreach (FileInfo f in fi)
{
Size += f.Length;
}
DirectoryInfo[] dis = directoryInfo.GetDirectories();
foreach (DirectoryInfo d in dis)
{
if (d.Name != "System Volume Information" && d.Name.Substring(0, 1) != "$")//避開此類folder權限問題
Size += DirectorySize(d);
}
return (Size);
}
3.應用:
DirectoryInfo d = new DirectoryInfo(@"D:\temp");//輸入檔案夾
double size = DirectorySize(d);
SizeFormat sizeFormat = SizeFormat.KiloBytes;
switch (sizeFormat)
{
case SizeFormat.Bytes:
size = size / Math.Pow(1024, 0);
break;
case SizeFormat.KiloBytes:
size = size / Math.Pow(1024, 1);
break;
case SizeFormat.MegaBytes:
size = size / Math.Pow(1024, 2);
break;
case SizeFormat.GigaBytes:
size = size / Math.Pow(1024, 3);
break;
}
MessageBox.Show(size.ToString());
文章標籤
全站熱搜
