代碼如下:
/// <summary>
/// 獲取文件夾大小
/// </summary>
/// <param name="dirPath"></param>
/// <returns></returns>
static long GetDirectorySize(string dirPath)
{
if (!System.IO.Directory.Exists(dirPath))
return 0;
long len = 0;
DirectoryInfo di = new DirectoryInfo(dirPath);
//獲取di目錄中所有文件的大小
foreach (FileInfo item in di.GetFiles())
{
len += item.Length;
}
//獲取di目錄中所有的文件夾,並保存到一個數組中,以進行遞歸
DirectoryInfo[] dis = di.GetDirectories();
if (dis.Length > 0)
{
for (int i = 0; i < dis.Length; i++)
{
len += GetDirectorySize(dis[i].FullName);//遞歸dis.Length個文件夾,得到每隔dis[i]
下面所有文件的大小
}
}
return len;
}
/// <summary>
/// 獲取文件大小
/// </summary>
/// <param name="filePath"></param>
/// <returns></returns>
static long GetFileSize(string filePath)
{
long temp = 0;
//判斷當前路徑是否指向某個文件
if (!File.Exists(filePath))
{
string[] strs = Directory.GetFileSystemEntries(filePath);
foreach (string item in strs)
{
temp += GetFileSize(item);
}
}
else
{
FileInfo fileInfo = new FileInfo(filePath);
return fileInfo.Length;
}
return temp;
}
