necessario uno snippet di codice che possa leggere le ultime "n righe" di un file di registro. Sono venuto con il seguente codice dalla rete. Sono un po 'nuovo per C sharp. Poiché il file di registro potrebbe essere piuttosto grande, voglio evitare di sovraccaricare la lettura dell'intero file. Qualcuno suggerisce un miglioramento delle prestazioni. I non voglio veramente leggere ogni personaggio e cambiare posizione.Come leggere le ultime righe "n" del file di registro
var reader = new StreamReader(filePath, Encoding.ASCII);
reader.BaseStream.Seek(0, SeekOrigin.End);
var count = 0;
while (count <= tailCount)
{
if (reader.BaseStream.Position <= 0) break;
reader.BaseStream.Position--;
int c = reader.Read();
if (reader.BaseStream.Position <= 0) break;
reader.BaseStream.Position--;
if (c == '\n')
{
++count;
}
}
var str = reader.ReadToEnd();
Non è possibile utilizzare uno StreamReader del genere. – SLaks
dai uno sguardo a http://stackoverflow.com/questions/1271225/c-reading-a-file-line-by-line. È quindi possibile utilizzare l'estensione LINQ '.Last()' su IEnumerable per ottenere le ultime N righe –
@Russ: No, non è possibile. LINQ non può fornire in modo efficiente le ultime righe _n_. – SLaks