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

时间:2014-04-29 11:17:48

标签: c#

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

例如,我可以使用Notepad ++打开文件并显示内容,所以我认为使用c#也一定可以。

1 个答案:

答案 0 :(得分:4)

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

在您阅读文档时处理写入文件的程序完全取决于您。结果可能是随机的。一切皆有可能,但一般来说,对于一个日志文件,你会得到一个部分写入的最后一行,它落后于程序的实际输出,其中一些仍然在程序的文件缓冲区中。缓冲区大小为4096字节是常见的选择。