【发布时间】:2012-10-04 14:37:42
【问题描述】:
我正在尝试解析一个文件夹并删除其中的所有文件。
DirectoryInfo dir = new DirectoryInfo("C\\Temp");
if (dir.GetDirectories().Any(p => p.Name == "\\NewTemp"))
{
foreach (string file in Directory.GetFiles(dir + "\\NewTemp"))
{
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
}
此代码运行良好,并删除了我的 \NewTemp 文件夹中的所有文件。但是,如果打开任何文件,这些文件将不会被删除。我想强制关闭打开的文件并删除它们。我什至尝试过
foreach (string file in Directory.GetFiles(dir + "\\NewTemp"))
{
TextReader tr = new StreamReader(dir+"\\NewTemp\\"+file);
tr.Close();
File.SetAttributes(file, FileAttributes.Normal);
File.Delete(file);
}
但是没有用。请让我知道我在哪里失踪。
【问题讨论】:
-
我很确定有这个命令行实用程序,您可以使用它来获取所有打开特定文件的进程,我也很确定您可以从 c# 中杀死这些进程跨度>
-
tr 正在尝试关闭文件 TextReader tr = new StreamReader(file)。我打错字了
-
stackoverflow.com/questions/177146/… 托管代码并不太简单。在这个答案中,有一个指向 Codeproject 上的 proget 的链接可以帮助你。
标签: c# file directory delete-file