这个问题已经在这里有了答案 :
即使遇到“另一个进程正在使用”异常,如何读取文件? (4个答案)
4年前关闭。
我有一个小问题。我有一个工具应该每天解析一个日志文件,不幸的是,该日志文件正在写入日志的进程中使用,我无法停止它。
首先尝试创建该文件的副本,但该副本也不起作用。
我有什么办法可以读取日志文件的当前文本,即使该文件已经被使用了?
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可以做什么。
在上面的示例中,您可以打开文件进行读取,而其他进程可以打开该文件以进行读/写访问。在大多数情况下,这对于打开正在使用的日志文件有效。