是否存在等待在c#中创建文件的内置方法?如何等待文件完全写入?
我通过在文件上反复尝试File.OpenRead()直到它成功(并且在超时时失败)来烘焙自己,但是在文件上旋转似乎不是正确的事情。我猜在.NET中有一个烘焙方法可以做到这一点,但我找不到它。
答案 0 :(得分:10)
使用FileSystemWatcher组件怎么样?
此类“监视”给定的目录或文件,并且可以在发生某些事情(您可以定义内容)时引发事件。
答案 1 :(得分:3)
使用File.Create
创建文件时,您只需调用Close
函数即可。
像这样:
File.Create(savePath).Close();
答案 2 :(得分:1)
FileSystemWatcher可以在创建,删除,更新文件,更改属性等时通知您。它将解决您第一次发出waitign以便创建文件。
至于等待它被写入,当创建文件时,你可以旋转并开始跟踪它的大小并等待它停止更新,然后添加一个结算时间段,你也可以尝试获得一个如果其他进程也试图锁定文件,请小心锁定文件...这可能会导致意外的问题发生。
答案 3 :(得分:1)
FileSysWatcher无法监控网络路径。在这种情况下,您手动必须“爬行”目录中的文件 - 这可能导致上述用户错误。
是否有替代方案,以便我们可以确保在文件完全写入磁盘并关闭之前不打开文件?