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



我试图在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);

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

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

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

相关内容

  • 没有找到相关文章

最新更新