FileStream:由另一个进程错误使用

A9S*_*9S6 9 .net c# file-io filestream

我有两个不同的模块需要访问单个文件(一个将具有ReadWrite Access - Other only Read).在其中一个模块中使用以下代码打开该文件:

FileStream fs1 = new FileStream(@"D:\post.xml", FileMode.Open, FileAccess.ReadWrite, FileShare.Read);
Run Code Online (Sandbox Code Playgroud)

问题是第二个模块在尝试使用以下代码打开同一文件时失败:

FileStream fs = new FileStream(@"D:\post.xml", FileMode.Open, FileAccess.Read);
Run Code Online (Sandbox Code Playgroud)

我需要在这里设置一些额外的安全参数吗?

cur*_*isk 27

在仅读取文件的FileStream上,您需要将其设置为

FileShare.ReadWrite

FileStream fs = new FileStream(@"D:\post.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Run Code Online (Sandbox Code Playgroud)

另外,原来的FileStream无法回写它...它只是在两个流之间来回滚动,确保你回传其他需要的东西