使用Windows服务读取文件时,文件访问错误与FileSystemWatcher

时间:2016-08-08 09:02:22

标签: c# file windows-services filesystemwatcher

我有类似的issue。但我正在使用Windows服务从特定目录中读取文件。有可能多个文件同时或逐个出现。问题是当我把它读取的文件放入但是当我放入另一个文件时它会抛出文件访问异常。请帮忙。感谢。

以下是代码:

private static void OnCreated(object source, FileSystemEventArgs e)
    {
        try
        {
            var data = new FileData();
            data.ReadFile(e.FullPath);

        }
        catch (Exception ex)
        {
            WriteLogForError(ex.Message, String.Empty, ErrorLogPath);
        }
    }

1 个答案:

答案 0 :(得分:0)

您尝试在创建文件时访问该文件。创建文件的另一个进程可能仍在写入它,因此您不能再触摸它。

解决方案很尴尬:将文件名放入某个列表/队列,启动计时器,几秒钟后尝试阅读它(不要忘记尝试...抓住这里并在失败时重试,那里没有直接通知其他进程已完成其工作)。