文件监视器错误

时间:2014-10-19 08:06:12

标签: c# file-watcher

我的文件观察程序事件只读取第一个文件然后我收到以下错误: “错误: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);

1 个答案:

答案 0 :(得分:-1)

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

解决错误的最简单方法是在尝试访问文件之前等待一会儿:

Thread.Sleep(500);

更高级的方法是等待上一次 Changed事件。