Amo*_*ous 1 .net c# windows file winforms
我试图删除包含用户“用户名”及其内容位于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);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试运行Windows Form二进制文件时,命中前几个文件时,mscorlib.dll错误中出现了'System.UnauthorizedAccessException'错误。事情就是这样,我以管理员身份运行它,我可以在资源管理器中删除这些文件而不会出现问题(甚至没有UAC提示),并且没有进程锁定/使用这些文件。
这是怎么回事?
交换此调用的directory.delete
//Directory.Delete alternative
public void DeleteDirectory(string targetDir)
{
File.SetAttributes(targetDir, FileAttributes.Normal);
string[] files = Directory.GetFiles(targetDir);
string[] dirs = Directory.GetDirectories(targetDir);
foreach (string file in files)
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
foreach (string dir in dirs)
{
DeleteDirectory(dir);
}
Directory.Delete(targetDir, false);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |