为什么我可以使用FileInfo删除.NET中的打开图像文件?

时间:2009-06-08 18:02:55

标签: c# .net file-io

我有一个小实用程序,它使用.NET的FileInfo.Delete()方法从文件夹中删除文件。基本上,如果文件当前是打开的,我可以捕获IOException。这适用于除图像文件(JPG,GIF,BMP等)之外的所有文件。当这些类型的文件打开时,程序仍然可以删除它们而不会抛出任何异常。你以前遇到过这个吗?如何检测这些类型的文件是否打开,以便我可以阻止删除。

谢谢, 胡志明

2 个答案:

答案 0 :(得分:8)

是否可以在文件打开时删除文件取决于文件打开的程序而不是文件类型。例如,如果应用程序只是读取文件内容然后关闭文件(例如记事本),则可以在文件“打开”时删除该文件(意味着它在记事本中显示)。另一方面,Excel会以通常无法复制文件的方式打开文件。

答案 1 :(得分:1)

使用WhoLockMe或Unlocker等工具查看文件是否真的“打开”。正如其他人所说,这与文件类型无关,只是读取它的程序如何打开文件。