如何检查文件复制是否正在进行中?

时间:2013-05-25 16:58:53

标签: c# file-copying

有没有办法知道文件是否在C#中被“写入”或“完成复制”而不试图打开文件?

2 个答案:

答案 0 :(得分:0)

FileInfo类不支持这些回调。也许你可以写自己的类来做这件事。看看http://www.pinvoke.net/default.aspx/kernel32.CopyFileEx

答案 1 :(得分:0)

这取决于使用文件的过程,例如 - 如果您已启动复制并尝试查明文件是否已完成复制?

如果期望是某些其他进程正在尝试写入文件并且您希望捕获它的状态? - 在这种情况下,技术上是不可能的,因为除非文件完全写入,否则文件系统不会提供句柄。

如果文件已经存在而另一个进程正在写入文件 - 它将只是脏的准备好获取内容。除非进程实际上尝试保存/覆盖,否则在文件上技术上没有LOCK。

请更具体地说明问题