2016-06-23 8 views
3

Ich möchte eine Kopf- und Fußzeile in meiner Textdatei hinzufügen. Wie kann ich das machen? Mein Ziel sollte dies mag:Wie fügt man Header-und Fußzeile TXT-Datei in C#?

tr.AddHeaderAndFooter("Header","footer"; 

Zum Beispiel:

using (var fileStream = new FileStream(ConfigurationManager.AppSettings["TargetDir"] + swiftFile, FileMode.Open, FileAccess.Read)) 
{ 
    TextReader tr = new StreamReader(fileStream); 
    tr.AddHeaderAndFooter("Header","footer"; 
} 
+7

eine einfache Textdatei keinen Header und eine Fußzeile. –

+0

Eine Kopfzeile und eine Fußzeile sind beide wie jede andere Textzeile in einer Textdatei, außer dass eine Kopfzeile die erste Zeile und eine Fußzeile die letzte Zeile ist. –

+0

Sie können nicht zu einem 'TextReader' schreiben. Außerdem benötigen Sie den 'FileAccess.ReadWrite'-Zugriff auf die Datei. –

Antwort

3

Eine TXT-Datei hat keine Kopf- oder Fußzeile.
Aber Sie können dieses Verhalten mit dem folgenden Codebeispiel simulieren:

// since there is no predefined method to add a string into the beginning 
// of a file, you have to first read the whole file content into a temporary 
// variable 
string currentContent = String.Empty; 
if (File.Exists(filePath)) 
{ 
    currentContent = File.ReadAllText(filePath); 
} 

// now you can put your header into the beginning of the file so: 
string header = "My Header"; 
File.WriteAllText(filePath, header + Environment.NewLine + currentContent); 

// and finally you use the append method to add footer to the end of the file 
string footer = "My Footer"; 
File.AppendAllText(filepath, Environment.NewLine + footer); 
+0

Großartige Code-Antwort. Können Sie einige Kommentare hinzufügen, um anderen zu erklären, dass sie in Zukunft auf diese Antwort verweisen könnten? –

+0

Angenommen, die Textdatei ist nicht mehrere MB in der Länge, das ist so eine gute Antwort wie jede andere. – Neil

+0

Was ist los *** *** ***? – Kiquenet

0

Sie etwas entlang der Linien von meinen Sie:

string text = "header" + Environment.NewLine + "rest of file ... asjdhakjdh" + Environment.NewLine + "footer"; 
File.WriteAllText("filename.txt", text); 

Diese

Kopf sparen

Rest Datei ... asjdhakjdh

Fußzeile

in einem .txt Datei mit dem Namen filename.txt

So könnten Sie Ihre Datei, speichern sie in einer Zeichenfolge lesen, Fügen Sie Ihre Kopf- und Fußzeile hinzu und schreiben Sie sie in dieselbe Datei zurück, aus der sie stammt.

+1

Nur ein Tipp; Anstelle von \ n ist es besser, die konstante Environment.NewLine für diese Art von Dingen zu verwenden :) – cwap

+0

Guter Punkt, danke! Ich habe in das Code-Snippet eingebaut :) – Marco7757

Verwandte Themen