繁体   English   中英

读取被其他进程锁定(?)的文件

[英]Read a file that is locked (?) by a other process

我想读取由其他进程打开(和锁定?)的文件的内容。 我尝试使用File.ReadAllText()new StreamReader(new FileStream(path, FileMode.Open, FileAccess.Read))但是这两种方法都触发IOException。

例如,我可以使用Notepad ++打开文件,并显示内容,因此我认为使用c#也必须可行。

您需要使用带有FileShare参数的FileStream构造函数重载。 并传递FileShare.ReadWrite 只有在您允许写访问权限的情况下,您才能打开该文件,因为其他程序已经获得了该权限。 否则,到目前为止您尝试失败的原因,他们使用了FileShare.Read。 无法工作,您不能拒绝写访问,因为其他程序已经获得了写访问。

在读取文件时处理写入文件的程序完全取决于您。 结果可能是相当随机的。 一切皆有可能,但通常对于日志文件,您会得到部分编写的最后一行,该行位于程序的实际输出之后,其中某些仍在程序的文件缓冲区中。 通常选择4096字节的缓冲区大小。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM