3

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

该进程无法访问文件“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);
4

2 回答 2

5

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

简而言之,您的 freader 必须指定 FileShare.Write 以允许文件上已经有一个 writer。

于 2008-10-09T21:15:34.910 回答
0

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

于 2008-10-09T21:18:30.960 回答