.NET文件共享问题

时间:2014-09-27 18:07:10

标签: c# .net file

最近我遇到了问题,我无法在进程/线程之间共享文件访问权限。 简单的代码:

 FileStream open = File.Open("path", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.Read);

接下来调用FileOpen与FileAccess.Read和sharing - None或Read - 抛出exeption。

必须假设此代码允许读取与“本机”WinAPI函数CreateFile相同的任何人,这在这种情况下非常完美。

[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    public static extern IntPtr CreateFileW(
         [MarshalAs(UnmanagedType.LPWStr)] string filename,
         [MarshalAs(UnmanagedType.U4)] EFileAccess access,
         [MarshalAs(UnmanagedType.U4)] EFileShare share,
         IntPtr securityAttributes,
         [MarshalAs(UnmanagedType.U4)] ECreationDisposition creationDisposition,
         [MarshalAs(UnmanagedType.U4)] EFileAttributes flagsAndAttributes,
         IntPtr templateFile);
IntPtr ptr = CreateFileW(path,
                        EFileAccess.GenericRead,
                        EFileShare.None,
                        IntPtr.Zero,
                        ECreationDisposition.OpenExisting,
                        EFileAttributes.Normal,
                        IntPtr.Zero);

那么,使用.NET共享文件访问是否有任何技巧?

再一次!实际上我们可以使用下一个代码共享文件:

FileStream open = File.Open("path", FileMode.OpenOrCreate, **FileAccess.Read**, FileShare.Read);

但在我的情况下 - 我确实需要第一个线程能够写文件!!

0 个答案:

没有答案