我有一个 WPF 应用程序,它可以打开和编辑 XML 文件。目前,应用可以多次启动,多个实例可以打开同一个文件。我需要锁定文件,这样,当一个文件打开时,它不会让应用程序的另一个实例打开文件。我尝试在打开文件时使用 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);
}