c# - 如何打开文件进行独立读/写?

标签 c# file-io

我想打开同一个文件进行读取和写入。文件指针应该是独立的。因此读取操作不应移动写入位置,反之亦然。

目前,我正在使用此代码:

FileStream fileWrite = File.Open (path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
FileStream fileRead = File.Open (path, FileMode.OpenOrCreate, FileAccess.Read, FileShare.Read);
StreamWriter _Writer = new StreamWriter (fileWrite, new ASCIIEncoding ());
StreamReader _Reader = new StreamReader (fileRead, new ASCIIEncoding ());

但这会导致 IOException:“该进程无法访问该文件,因为该文件正在被另一个进程使用”

最佳答案

我想我自己就明白了。在第二个 File.Open 中,我们尝试通过指定 FileShare.Read拒绝其他应用程序的写入访问权限。相反,我们需要允许第一个流写入文件:

FileStream fileRead = File.Open (path, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite);

这本质上是正确的,因为读取流不应该关心其他人写入文件。至少我不再遇到异常了。

关于c# - 如何打开文件进行独立读/写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1102400/

相关文章:

c# - Windows 窗体应用程序中的内存泄漏

c# - 对 Directory.GetFiles 感到困惑

c# - 我应该在类里面输入多少信息? (面向对象)

c# - 如何减少图像旋转质量损失?

c# - 等待文件被进程释放

c# - 将 Oracle AES 256 加密复制到 C#

java - 读取文件 - java.io.FileNotFoundException

java - 无法使用对象列表写入/读取文件

javascript - 如何使用 node.js 将二进制数据写入文件?

c++ - 从文件发出阅读空间