gpt4 book ai didi

c# - 打开文件只读

转载 作者:IT王子 更新时间:2023-10-29 03:57:03 24 4
gpt4 key购买 nike

目前,这是我打开文件以阅读它的方式:

 using (TextReader reader = new StreamReader(Path.Combine(client._WorkLogFileLoc, "dump.txt")))
{
//do stuff
}

如何以只读模式打开文件,以便如果另一个进程同时打开该文件,我的程序仍然可以读取它。

最佳答案

典型的问题是其他进程打开文件进行写入。所有标准的 File 方法和 StreamReader 构造函数都使用 FileShare.Read 打开文件。那行不通,拒绝写入共享。您不能拒绝写入,另一个进程是第一个并获得了写入权限。因此,您将被拒绝访问。

您必须像这样使用 FileShare.ReadWrite:

var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); 
using (var sr = new StreamReader(fs))
{
// etc...
}

请注意,您仍然会遇到一个棘手的问题,您正在读取一个写了一半的文件。另一个进程在随机时间点将数据刷新到文件中,您可能只读取了半行文本。 YMMV.

关于c# - 打开文件只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4964588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com