我有一個WPF應用程序,它打開並編輯XML文件。目前,該應用可以多次啓動,並且多個實例可以打開相同的文件。我需要鎖定這些文件,當打開文件時,它不會讓應用程序的另一個實例打開文件。我曾嘗試在打開文件時使用FileShare.None屬性以及FileStream.Lock(),但由於某些原因,這些功能無法阻止單獨的應用程序實例打開它。保留在WPF應用程序中打開文件的多個副本
編輯:相關代碼
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);
}
發佈您的相關代碼,它會使得獲得幫助變得更容易。 – Jon 2011-03-31 02:07:14
設置'FileShare.None'應該就夠了。你不需要調用'Lock()'。你能發佈一個更小,更完整的例子來重現問題嗎? – 2011-03-31 02:31:58