Csharp/C#教程:好好又干净的方式等到文件关闭分享


好好又干净的方式等到文件关闭

可能重复:
等到文件在.NET中解锁

我有一个打开的文件,如.Doc或.txt,我必须等到用户关闭它。 我已经尝试了这个,根据等待文件在.NET中解锁 :

while (true) { try { using (FileStream Fs = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None, 100)) { //the file is close break; } } catch (IOException) { //wait and retry Thread.Sleep(1000); } } 

这很好用,但是有可能找到没有try / catch的解决方案并处理exception?

不幸的是,没有别的办法。

API没有在解锁文件或其他任何方便的文件时触发的事件。

使用等待重试是当前API的最佳解决方案。

但是,一方面,不要使用你现在拥有的循环,如果没有exception就break – 在那个循环中执行你的实际文件访问。

接下来,如果文件在已知进程中打开,则可以获取其Process对象,将EnableRaisingEvents设置为true ,并处理其Exited事件以再次尝试。 但是,它不是故障安全的,因此您仍然可以处理exception并使用循环。

您可以对本机CreateFile函数进行P / Invoke调用,然后分析错误代码。 但是,仍然需要try / catch。

上述就是C#学习教程:好好又干净的方式等到文件关闭分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1010032.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐