如何读取另一个进程正在写入的文件



有一个文件C:\acme.log是另一个程序(而不是我的(正在写入的。它是一个日志文件,所以程序总是打开它进行写入。

我想阅读日志文件的当前内容。我试过

FileInfo fInfo = new FileInfo(@"C:acme.log");
FileStream fileStream = fInfo.Open(FileMode.Open, FileAccess.Read);

此操作失败,返回System.IO.IOException:进程无法访问文件"C:\acme.log",因为另一个进程正在使用该文件

我可以在记事本中打开文件并查看其内容。如果记事本可以打开文件,我的程序应该有办法打开,不是吗?

请参阅此处的链接:

读取被另一进程锁定的文件

这是该链接的代码:

using (FileStream logFileStream = new FileStream("c:test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (StreamReader logFileReader = new StreamReader(logFileStream))
{
while (!logFileReader.EndOfStream)
{
string line = logFileReader.ReadLine();
// Your code here
}
}

最新更新