在另一个进程中使用时删除文件

时间:2011-04-19 23:53:27

标签: c# wpf

在WPF的DocumentViewerControl中,我希望在关闭事件处理程序中关闭控件后删除该文件。我试图删除它,但VS告诉我它被另一个进程使用。我该如何删除它?

TextBlock tb = (TextBlock)e.TabItem.Header;
int index = Convert.ToInt32(tb.Text.Split(' ')[1]) - 2;
string path = GlobalStaticVariables.store_item_content[index].Split('-')[1];
Process temp = Process.GetCurrentProcess();
temp.Dispose();
System.IO.File.Delete(path);

1 个答案:

答案 0 :(得分:4)

此问题现在被多次询问,答案仍然没有改变:删除其他进程打开的文件很糟糕,结果很难做到。通常最好弄清楚为什么文件被锁定并修复应用程序行为以避免大量文件锁定或等到应用程序释放文件。

要调查谁锁定文件,您可以使用Handle或GUI版本 - Microsoft / SysInternals的Process Explorer。

请参阅有关此主题的讨论的相关信息。