我有一个C#应用程序试图读取另一个应用程序正在写入的日志文件。当我尝试读取文件时,我得到IOException
"进程无法访问该文件...因为它正被使用 另一个过程。"
到目前为止我尝试使用的是以下内容,但没有一个能解决问题
var log = File.ReadAllText(logPath);
var stream = new FileStream(logPath, FileMode.Open);
using (var stream = File.Open(logPath, FileMode.Open))
{
}
答案 0 :(得分:1)
试试这个:
FileStream logFileStream = new FileStream("c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader logFileReader = new StreamReader(logFileStream);
while (!logFileReader.EndOfStream)
{
string line = logFileReader.ReadLine();
// Your code here
}
// Clean up
logFileReader.Close();
logFileStream.Close();
使用MethodMan的建议编辑
using(FileStream logFileStream = new FileStream(@"c:\test.txt", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)
{
using(StreamRead logFileReader = new StreamReader(logFileStream))
{
string text = logFileReader.ReadToEnd();
// Your code..
}
}
答案 1 :(得分:0)
如果“另一个应用”在创建/打开文件时不使用Share.Read,则无法执行任何操作。