CodeGo.net>一个人如何使用FileStream追加到文件而没有排他锁?

我正在C#/.NET中使用FileStream进行的操作是打开两个流:一个流附加到文件上,另一个流异步读取这些写操作(用于对某些网络连接处理代码进行单元测试).我无法弄清楚如何让编写器流以非排他性锁定模式打开文件,因此代码始终会引发异常:

The process cannot access the file
‘C:\test.txt’ because it is being used
by another process.

这是一小段代码,演示了该问题:

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# file read/write fileshare doesn’t appear to work

简而言之,您的freader必须指定FileShare.Write,以允许该文件上已经存在一个作者的事实.

上一篇:Python命令行’文件输入流’


下一篇:c – 为什么流:: good是错的示例?