我的控制台应用程序在运行时正在创建一些运行时文件,所以我想做的是在应用程序启动时删除所有这些文件。我试过这个:
public static void Empty(string targetDir)
{
var directory = new DirectoryInfo(targetDir);
if (!directory.Exists) return;
foreach (var file in directory.GetFiles()) file.Delete();
foreach (var subDirectory in directory.GetDirectories()) subDirectory.Delete(true);
}
...只是在给定路径(在程序执行路径的子目录中)中查找所有文件/文件夹,然后删除它们。但是,我得到以下异常:
Access to the path 'file' is denied.
我尝试以管理员身份运行该程序,但没有成功;但是,我想要一个无需管理员权限即可运行的解决方案。
注释:
- 该文件未在其他应用程序中运行。
- 文件不在 protected 文件夹中。
- 可以毫无问题地手动删除该文件,这就是为什么我 我在这里。
最佳答案
我得到这个错误,发现这是因为我的测试文件是只读的。更改了这个,我现在可以使用 fileinfo 删除它们,不用担心。
关于c# - File.Delete 访问路径被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15260146/