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());
arrow
arrow
    文章標籤
    C# Directory size
    全站熱搜
    創作者介紹
    創作者 西夏普 的頭像
    西夏普

    西夏普的部落格

    西夏普 發表在 痞客邦 留言(0) 人氣()