我有一个简单的方法来计算目录和其中所有文件的大小。这是代码:
using System;
using System.IO;
namespace MyProject.Libs
{
public sealed class DirectorySize
{
public static long GetDirectorySize(DirectoryInfo dir)
{
long total = 0;
FileInfo[] fileInfos = dir.GetFiles();
foreach (FileInfo fileInfo in fileInfos)
{
total += fileInfo.Length;
}
DirectoryInfo[] dirInfos = dir.GetDirectories();
foreach (DirectoryInfo dirInfo in dirInfos)
{
total += DirectorySize.GetDirectorySize(dirInfo);
}
return total;
}
}
}
当我在驱动器 c:\ 上使用它时,我得到“UnauthorizedAccessException”,并显示一条消息“访问路径 'C:\Documents and Settings' 被拒绝。” 那是:
DirectoryInfo di = new DirectoryInfo(Path.GetPathRoot(Environment.SystemDirectory));
long ds = DirectorySize.GetDirectorySize(di);
试图以管理员身份运行 Visual Studio。都一样。为什么?