XML ファイルを開いて編集する WPF アプリがあります。現在、アプリは複数回起動でき、複数のインスタンスで同じファイルを開くことができます。ファイルが開いているときに、アプリの別のインスタンスがファイルを開くことができないように、ファイルをロックする必要があります。ファイルを開くときに FileShare.None 属性と FileStream.Lock() を使用しようとしましたが、何らかの理由で、アプリの別のインスタンスがファイルを開くのを防ぐことができません。
編集:関連コード
try
{
FileStream iStream = File.Open(fileName, FileMode.Open, FileAccess.ReadWrite, FileShare.None);
iStream.Lock(0, iStream.Length);
// DO STUFF WITH FILE HERE
}
catch (System.IO.IOException ioException)
{
// Raise exception to higher level, where application will terminate.
throw (ioException);
}