2014-09-03 90 views
0

我們已實施以下在我們的應用程序代碼「因爲它正由另一個進程的進程無法訪問文件」:實施Kernel32Dll.CreateFile給出錯誤

「SafeFileHandle手柄= Kernel32Dll.CreateFile(‘文件路徑’, GenericRead,Read | Write,IntPtr.Zero,Open,None,IntPtr.Zero);

只使用一個應用程序實例時工作正常,但當兩個應用程序同時嘗試加載相同文件時,它會拋出 「進程無法訪問該文件,因爲它正在被另一個進程使用」錯誤。

在這種情況下適當使用Kernel32Dll.CreateFile會怎樣?

回答

0

我們在代碼中發現了一些我們已經想通的錯誤。我們需要將FILE_SHARE_READ而不是Read | Write寫入文件共享中。我們的代碼的另一部分也存在問題。以下是工作版本:

SafeFileHandle handle = Kernel32Dll.CreateFile(「filepath」,GenericRead,FILE_SHARE_READ,IntPtr.Zero,Open,None,IntPtr.Zero);

Regards