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

时间:2010-03-05 13:19:31

标签: c# .net file-io filestream

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

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

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

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

我是否需要在此设置一些额外的安全参数?

3 个答案:

答案 0 :(得分:26)

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

FileShare.ReadWrite

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

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

答案 1 :(得分:0)

你需要使用filestreamname.Open();和filestreamname.close();使用2个读/写同一文件的文件流时的命令,因为您无法异步读写文件。

答案 2 :(得分:0)

打开第二个FileStream时,您还需要指定FileShare.Read,否则会尝试使用独占访问权限打开它,并且因为文件已经打开而失败