使用windows服务读取文件时,FileSystemWatcher出现文件访问错误

本文关键字:文件 访问 错误 FileSystemWatcher windows 服务 读取 使用 | 更新日期: 2023-09-27 18:01:12

我也有类似的问题。但我正在使用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);
        }
    }

使用windows服务读取文件时,FileSystemWatcher出现文件访问错误

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

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