我试图在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,以允许文件上已经有写入程序。
我不确定它是否有帮助,但如果您只是进行单元测试,那么使用内存流而不是文件不是更容易吗?