处理FileSystemWatcher.Created事件时发生文件读取错误

时间:2017-06-30 09:40:41

标签: c# filesystemwatcher

文件是通过FTP上传的,它引发了文件被占用的IO异常

//table//tr[1]

等待你的回答,非常感谢。

2 个答案:

答案 0 :(得分:-1)

您可以使用whiletry-catch阻止。将您的文件读取代码放在while循环和循环中,直到您成功读取文件(这意味着您已成功通过try块)。或者使用一些延迟,如评论中建议的那样(但这并不保证,不会发生异常)。

您将在两种情况下退出:文件成功读取或抛出除IO之外的异常。这意味着您需要更复杂的catch部分。您可以通过以下方式了解详细信息:)

答案 1 :(得分:-1)

只需添加一个小延迟,如:

var watcher = new FileSystemWatcher();
watcher.Created += (sender, e) =>
{
    Thread.Sleep(10);
    var lines = File.ReadAllLines(e.FullPath, Encoding.UTF8); //io exception here
};

由于您已经提到该文件很大,您可以按照以下SO Post

中发布的代码进行操作