有人知道为什么我不允许“读取”设置了“ReadOnly”位的文件的大小吗?我正在以管理员身份运行我的程序而且我没有尝试写入文件,我可以从文件资源管理器中读取属性和文件大小,即使使用较低的凭据,但我的软件不允许从只读文件中读取并给出我是一个UnAuthorizedAccess例外。我没有看到任何背后的逻辑,任何人这样做?有解决方法吗?
private static double DirSize(DirectoryInfo tdir) {
double size = 0;
FileInfo[] files = tdir.GetFiles();
foreach (FileInfo file in files) { size += file.Length; }
DirectoryInfo[] dirs = tdir.GetDirectories();
foreach (DirectoryInfo dir in dirs) { size += DirSize(dir); }
return( size );
}
编辑:它抱怨的文件是一个只读目录的快捷方式。 “安全”选项卡显示目录本身和快捷方式都没有问题。我想这不是什么大问题,因为它只是一个快捷方式,但我想了解发生了什么,并希望将1 KB的快捷方式计算到我的总数。
答案 0 :(得分:0)
在Windows上,文件和目录具有不同的安全凭据。您可以轻松访问目录文件,但是当涉及到目录本身时,您需要为应用程序的用户设置权限。
Properties -> Security -> Groups or Usernames
您必须授予试图访问数据的应用程序用户的访问权限。 (例如IIS用户对于Web应用程序)