我的控制台应用程序正在创建一些运行时文件,所以我想要做的是在应用程序启动时删除所有这些文件.我试过这个:
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);
}
Run Code Online (Sandbox Code Playgroud)
...只是为了查找给定路径中的所有文件/文件夹(位于程序执行路径的子目录中),然后删除它们.但是,我得到以下异常:
访问路径"文件"被拒绝.
我试图以管理员身份运行该程序而没有运气; 但是,我想要一个不使用管理员权限的解决方案.
备注:
if (File.Exists(filePath))
{
File.SetAttributes(filePath, FileAttributes.Normal);
File.Delete(filePath);
}
Run Code Online (Sandbox Code Playgroud)
尝试使用这些Microsoft.VisualBasic.FileIO.FileSystem
方法,因为它有一个方便的DeleteDirectory
方法,我不久前遇到了访问问题,这是我的问题的解决方案。
var directory = new DirectoryInfo(targetDir);
if (directory.Exists)
{
Microsoft.VisualBasic.FileIO.FileSystem.DeleteDirectory(targetDir, Microsoft.VisualBasic.FileIO.DeleteDirectoryOption.DeleteAllContents);
}
Run Code Online (Sandbox Code Playgroud)