2014-09-03 96 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