Tag: file io已

在C#中,如果2个进程正在读取和写入同一个文件,那么避免进程锁定exception的最佳方法是什么?

使用以下文件读取代码: using (FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.None)) { using (TextReader tr = new StreamReader(fileStream)) { string fileContents = tr.ReadToEnd(); } } 并且以下文件编写代码: using (TextWriter tw = new StreamWriter(fileName)) { tw.Write(fileContents); tw.Close(); } 可以看到以下exception详细信息: 该进程无法访问文件’c:\ temp \ myfile.txt’,因为它正由另一个进程使用。 避免这种情况的最佳方法是什么? 读者是否需要在收到例外后重试或者有更好的方法吗? 请注意,阅读器进程使用FileSystemWatcher来了解文件何时更改。 另请注意,在这种情况下,我不是在寻找在两个进程之间共享字符串的替代方法。