一尘不染

您如何读取正在使用的文件?[重复]

c#

这个问题已经在这里有了答案

即使遇到“另一个进程正在使用”异常,如何读取文件? (4个答案)

4年前关闭。

我有一个小问题。我有一个工具应该每天解析一个日志文件,不幸的是,该日志文件正在写入日志的进程中使用,我无法停止它。

首先尝试创建该文件的副本,但该副本也不起作用。

我有什么办法可以读取日志文件的当前文本,即使该文件已经被使用了?


阅读 358

收藏
2020-05-19

共1个答案

一尘不染

using (FileStream stream = File.Open("path to file", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    using (StreamReader reader = new StreamReader(stream))
    {
        while (!reader.EndOfStream)
        {

        }
    }
}

FileAccess指定您要对文件执行的操作。FileShare指定文件在使用中时OTHERS可以做什么。

在上面的示例中,您可以打开文件进行读取,而其他进程可以打开该文件以进行读/写访问。在大多数情况下,这对于打开正在使用的日志文件有效。

2020-05-19