【发布时间】:2009-07-29 08:46:40
【问题描述】:
我正在观看一个包含以下代码的文件:
[..]
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\";
watcher.Filter = "t.log";
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.EnableRaisingEvents = true;
private static void watcher_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine("Changed!");
}
[..]
这行得通。现在,假设文件 t.log 的内容是:
row 1
row 2
row 3
row 4
当我向文件中添加(并保存)几行时,文件变为:
row 1
row 2
row 3
row 4
row 5
row 6
如何检索添加的行是“第 5 行”和“第 6 行”?
请注意,文件可能非常大,因此不能将其内容保存在内存中并与新版本进行比较。同样,存储最后读取行的值并从其开始计数也是不可能的,因为它会迫使我每次都读取整个文件,而且可能存在具有相同值的行。
非常感谢任何帮助。
【问题讨论】:
-
能否在日志文件的每一行中添加一个时间戳字段?
标签: c# logging filesystems