如何使用FileStream在没有独占锁的情况下附加到文件

本文关键字:情况下 文件 FileStream 何使用 | 更新日期: 2023-09-27 17:48:52

我试图在C#/.NET中使用FileStream打开两个流:一个附加到文件,另一个异步读取这些写入(用于单元测试一些网络连接处理代码)。我不知道如何让写入程序流以非独占锁定模式打开文件,因此代码总是抛出异常:

进程无法访问该文件"C:''test.txt",因为它正在被使用通过另一个过程。

这里有一些代码来说明这个问题:

FileStream fwriter = new FileStream("C:''test.txt", FileMode.Append,
    FileAccess.Write, FileShare.Read);
FileStream freader = new FileStream("C:''test.txt", FileMode.Open,
    FileAccess.Read, FileShare.Read);

如何使用FileStream在没有独占锁的情况下附加到文件

看看这个问题:C#文件读/写文件共享似乎不起的作用

简而言之,您的freader必须指定FileShare.Write,以允许文件上已经有写入程序。

我不确定它是否有帮助,但如果您只是进行单元测试,那么使用内存流而不是文件不是更容易吗?