Je regarde un fichier avec le code suivant:Obtenir de nouvelles lignes à partir d'un fichier avec FileSystemWatcher
[..]
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!");
}
[..]
Cela fonctionne. Maintenant, supposé que le contenu si le fichier est t.log:
row 1
row 2
row 3
row 4
Quand j'ajoute au fichier (et sauvegarder) quelques lignes et le fichier est ceci:
row 1
row 2
row 3
row 4
row 5
row 6
Comment puis-je récupérer que les lignes ajoutées sont "ligne 5" et "ligne 6"?
Notez que le fichier peut être très volumineux, donc avoir son contenu en mémoire et faire un diff avec la nouvelle version n'est pas une option. De même, stocker la valeur de la dernière ligne de lecture et compter à partir de ce n'est pas possible aussi, car cela me forcerait à lire le fichier entier à chaque fois, plus il pourrait y avoir des lignes avec la même valeur.
Toute aide vraiment appréciée.
Pourriez-vous ajouter un champ d'horodatage à chaque ligne du fichier journal? – Jonathan