我试图删除包含用户"用户名"的每个文件夹。它的内容位于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窗体二进制文件时,我得到了一个' System.UnauthorizedAccessException'在mscorlib.dll遇到前几个文件时发生错误。这就是事情,我作为管理员运行它,我可以在没有问题的情况下删除资源管理器中的那些文件(甚至是UAC提示),并且没有锁定/使用这些文件的进程。
发生了什么?
答案 0 :(得分:4)
交换此电话的目录。删除
//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);
}
答案 1 :(得分:1)
实际上还有另一个原因:在目录中你可能有一个名为“Thumb.db”的隐藏的恼人文件,其中包含所有文件的缩略图信息。有时,除非您通过任务管理器终止explorer.exe或关闭计算机,否则此文件不会关闭,并导致“不可删除”文件夹。
要摆脱这件令人讨厌的作品,请按照here:)
的说明操作