次のファイル読み取りコードを使用します。
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();
}
次の例外の詳細が表示されます。
別のプロセスで使用されているため、プロセスはファイル 'c:\temp\myfile.txt' にアクセスできません。
これを回避する最善の方法は何ですか? リーダーは例外を受け取ったときに再試行する必要がありますか、それとももっと良い方法がありますか?
リーダー プロセスはFileSystemWatcherを使用して、ファイルがいつ変更されたかを認識していることに注意してください。
また、この例では、2 つのプロセス間で文字列を共有する別の方法を探しているわけではないことに注意してください。