等待在C#中创建文件

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

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

使用FileSystemWatcher组件怎么样?

这个类’监视’给定的目录或文件,并且可以在发生某些事情(您可以定义什么)时引发事件。

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

 File.Create(savePath).Close(); 

FileSystemWatcher可以在创建,删除,更新,更改属性等文件时通知您。它将解决您创建的第一个waitign问题。

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

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

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