文件观察程序错误

本文关键字:错误 程序 观察 文件 | 更新日期: 2023-09-27 18:27:06

我的文件观察程序事件只读取第一个文件,然后我得到以下错误:"错误:System.IO.IOException:进程无法访问文件"D:''TREE''Dump''TF20141004011343313.txt",因为另一个进程正在使用该文件。"

这是我的代码:

   int? msgID;
        string dup ="";
        try
        {
            //---------read from file------------
            string block;
            using (StreamReader sr = File.OpenText(MsgsPath + "''" + e.Name))
            {
                block = sr.ReadToEnd();
            }

"使用"应该自动处理打开和关闭,对吧?然后我用这个代码来移动处理过的文件:

     File.Move(MsgsPath + "''" + e.Name, MsgsPath + "''Archive''" + e.Name);

文件观察程序错误

一旦其他进程打开文件进行写入,就会触发FileSystemWatcher Created事件。之后,当其他进程写入文件并最终关闭文件时,一个或多个Changed事件将随之而来

绕过错误的最简单方法是在尝试访问文件之前等待一小段时间:

Thread.Sleep(500);

更高级的方法是从最后一个Changed事件开始等待一小段时间。