我也有类似的问题。但我正在使用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);
}
}
您尝试在创建文件时访问该文件。创建文件的另一个过程可能仍在向其写入,因此您还不能触摸它。
解决方案很尴尬:将文件名放入某个列表/队列,启动计时器,几秒钟后尝试读取它(不要忘记尝试…在这里捕获并在失败时重试,不会直接通知其他进程已完成工作(。