等待在C#中创建文件

时间:2009-02-03 19:28:30

标签: c# file-io

是否存在等待在c#中创建文件的内置方法?如何等待文件完全写入?

我通过在文件上反复尝试File.OpenRead()直到它成功(并且在超时时失败)来烘焙自己,但是在文件上旋转似乎不是正确的事情。我猜在.NET中有一个烘焙方法可以做到这一点,但我找不到它。

4 个答案:

答案 0 :(得分:10)

使用FileSystemWatcher组件怎么样?

此类“监视”给定的目录或文件,并且可以在发生某些事情(您可以定义内容)时引发事件。

答案 1 :(得分:3)

使用File.Create创建文件时,您只需调用Close函数即可。 像这样:

File.Create(savePath).Close();

答案 2 :(得分:1)

FileSystemWatcher可以在创建,删除,更新文件,更改属性等时通知您。它将解决您第一次发出waitign以便创建文件。

至于等待它被写入,当创建文件时,你可以旋转并开始跟踪它的大小并等待它停止更新,然后添加一个结算时间段,你也可以尝试获得一个如果其他进程也试图锁定文件,请小心锁定文件...这可能会导致意外的问题发生。

答案 3 :(得分:1)

FileSysWatcher无法监控网络路径。在这种情况下,您手动必须“爬行”目录中的文件 - 这可能导致上述用户错误。

是否有替代方案,以便我们可以确保在文件完全写入磁盘并关闭之前不打开文件?