【发布时间】:2014-10-13 02:35:29
【问题描述】:
我正在尝试删除每个包含用户“用户名”的文件夹,其内容位于 C:\Users\User 中,如下所示:
foreach (var subdir in directory.GetDirectories().Where(subdir => subdir.Name.ToLower().Contains(Environment.UserName))) {
try {
Directory.Delete(subdir.FullName, true);
} catch (Exception exception) {
Console.Write("Deleting " + subdir.FullName + " caused exception: \n" + exception);
}
}
当我尝试运行 Windows 窗体二进制文件时,当遇到前几个文件时,我在 mscorlib.dll 中出现“System.UnauthorizedAccessException”错误。事情就是这样,我以管理员身份运行它,我可以在资源管理器中删除这些文件而不会出现问题(甚至是 UAC 提示),并且没有进程锁定/使用这些文件。
发生了什么事?
【问题讨论】:
-
这是一个 Windows 或一个 Web 应用程序,如果您从 Web 运行它,那么 IIS_USER 需要与您在用户帐户下相同的读/写权限
-
对不起,这是一个 Windows 窗体应用程序。编辑:DJ Craze 是一个很棒的 DJ。不确定您的用户名是否在向他致敬。
-
我是一名 DJ,我很高兴你能不分昼夜地认识到我的才华..LOL
-
你调试过这个吗?当您第一次通过 foreach 循环时,
subdir的值是多少,您确定您没有尝试删除整个 Directory 与 FilePath + FileName..? -
是否有任何文件是只读的? Directory.Delete 不允许这样做
标签: c# .net windows winforms file