我想在C#/ .NET中使用FileStream
尝试打开两个流:一个附加到文件,另一个异步读取这些写入(用于单元测试一些网络连接处理代码)。我无法弄清楚如何让 writer 流以非exlusive锁定模式打开文件,因此代码总是抛出异常:
该进程无法访问该文件 '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);
答案 0 :(得分:5)
请参阅此问题:C# file read/write fileshare doesn’t appear to work
简而言之,你的freader必须指定FileShare.Write以允许文件中已有一个writer。
答案 1 :(得分:0)
我不确定它是否有帮助,但如果你只是单元测试,那么使用内存流而不是文件会不会更容易?