我在 mscorlib.dll 中遇到 System.IO.IOException
类型的未处理异常,因为我尝试删除的文件正在被另一个进程使用。
我希望它跳过已使用的文件。
private void button1_Click(object sender, EventArgs e)
{
System.IO.DirectoryInfo directory =
new System.IO.DirectoryInfo(@"C:\Users\fatih\AppData\Local\Temp");
foreach (System.IO.FileInfo file in directory.GetFiles()) file.Delete();
foreach (System.IO.DirectoryInfo subDirectory in directory.GetDirectories())
subDirectory.Delete(true);
}
最佳答案
如果删除所有内容并不重要,请使用:
private void button1_Click(object sender, EventArgs e)
{
string directory = @"C:\Users\fatih\AppData\Local\Temp";
deleteDirectory(directory);
}
private void deleteDirectory(string directory){
foreach (string file in Directory.GetFiles(directory))
{
try{
File.Delete(file);
}
catch(Exception e0){
Console.WriteLine(e0.Message+"\n"+e0.Source);//not necessary but nice to learn from
}
}
foreach (string direc in Directory.GetDirectories(directory)) {
deleteDirectory(direc);
Directory.Delete(direc,true);
}
}
这将简单地跳过任何有问题的文件或目录并删除其他所有内容。
关于c# - 由于错误而无法删除临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39398662/