Ich kann momentan die letzte Zeile einer Textdatei entfernen mit:
%Vor%Wie ist es jedoch möglich, stattdessen den Anfang der Textdatei zu entfernen?
Anstelle von lines.Take
können Sie stattdessen lines.Skip
like:
am Anfang abgeschnitten, obwohl die Technik (alles Text lesen und alles zurück schreiben) sehr ineffizient ist.
Über den effizienten Weg: Die Ineffizienz kommt von der Notwendigkeit, die ganze Datei in den Speicher zu lesen. Andersherum könnte es einfach sein, in einem Stream zu suchen und den Stream in eine andere Ausgabedatei zu kopieren, das Original zu löschen und das alte umzubenennen. Dieser wäre genauso schnell und verbraucht dennoch viel weniger Speicher.
Das Abschneiden einer Datei am Ende ist viel einfacher. Sie können nur die Trunction-Position finden und FileStream.SetLength()
aufrufen.
Skip
eliminiert die angegebene Anzahl von Elementen vom Anfang der Sequenz. Take
eliminiert alle außer der angegebenen Anzahl von Elementen aus dem Ende der Sequenz.