FileSystemWatcher - 如何确定何时关闭文件?

时间:2009-08-21 19:35:18

标签: c# .net file-io

我正在从服务器下载文件并使用Process.Start()打开它,并将文件观察程序附加到该文件以捕获任何更改并将其重新上载到服务器。

无论如何使用FileWatcher或任何其他方法确定文件何时关闭?问题是我无法决定如何停止观看文件,我不希望它无限期地观看?

有什么想法吗?

提前致谢

乔恩

1 个答案:

答案 0 :(得分:1)

我所做的是放置一个5分钟的循环,只是观察文件是否可用。这样我就可以腾出时间自由,但仍然有一个明确的时间。如果在我的系统中没有清除5分钟,那么一定是错误的。您应该根据具体情况设定时间限制。我从某个地方得到了这个想法,不知道在哪里。

        DateTime EndTime = System.DateTime.Now.AddMinutes((double)timeOut);

        while (System.DateTime.Now <= EndTime)
        {
            try
            {
                using (Stream stream = System.IO.File.Open(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
                {
                    if (stream != null)
                    {
                        break;
                    }
                }
            }
            catch (FileNotFoundException)
            {
                //
            }
            catch (IOException)
            {
                //
            }
            catch (UnauthorizedAccessException)
            {
                //
            }


            System.Threading.Thread.Sleep(sleepTime);
        }