我需要不斷讀取日誌文件以檢測某些模式。如何在不干擾日誌寫入器操作需要執行的文件操作的情況下這樣做?以不妨礙其他進程修改的方式讀取文件
除了寫日誌之外,日誌寫入器進程還會週期性地將文件移動到另一個位置(一個達到特定大小)。
隨着我讀取文件的方式,日誌記錄器應用程序無法移動文件。我玩了各種FileShare選項無濟於事。
這裏的簡化我的代碼版本:
using (FileStream stream = new FileStream(@"C:\temp\in.txt", FileMode.Open, FileAccess.Read, FileShare.Delete))
{
TextReader tr = new StreamReader(stream);
while (true)
{
Console.WriteLine(".. " + tr.ReadLine());
Thread.Sleep(1000);
}
}
「日誌寫入器應用程序無法移動文件」 - 您想讓讀者在正在移動的文件上保持打開狀態? –
只要文件可用,我想繼續閱讀。我無法控制日誌記錄應用何時/如何移動文件。理想情況下,當文件被移動時,我會得到一個異常,並從這一點開始讀取新的日誌文件。 – akirekadu