Check if a file is open
本问题已经有最佳答案,请猛点这里访问。
有没有办法找到一个文件是否已经打开?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | protected virtual bool IsFileinUse(FileInfo file) { FileStream stream = null; try { stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None); } catch (IOException) { //the file is unavailable because it is: //still being written to //or being processed by another thread //or does not exist (has already been processed) return true; } finally { if (stream != null) stream.Close(); } return false; } |
作为pranay蛙",但我们要确保我们接近我们的file handle: </P >
1 2 3 4 5 6 7 8 9 10 11 12 13 |
如果你想下,你的支票,如果一个文件在你的冰开放开放网络的安全,那么NO。(至少没有去注低电平和examine file handle这是个开放的系统。) </P >
此外,信息会老,当你得到它。甚至如果测试会返回这样的文件是不开放的,它可以有一opened之前,你有一个机会来使用返回值。 </P >
所以,适当的方式到冰的情况下手柄到尝试到打开的文件,和任何可能的错误比handle的灵性。 </P >
设定的。在指定的类的Create a将这套《open file逻辑或至少测试(isfileavailable)。这将允许你到的地方的例外管理级和一个负责任的丈夫,具体来说和可重复使用的信息。你可以甚至适用于进一步的逻辑,如测试的文件尺寸要看如果冰被书面的文件等,提供一个更详细的反应。它将你的消费也丈夫码多清洁。 </P >