Laden...

Mehrere Dateien durch Dateipfade aus List öffnen und Inhalt rausschreiben

Erstellt von malikclk1 vor 2 Jahren Letzter Beitrag vor 2 Jahren 236 Views
M
malikclk1 Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren
Mehrere Dateien durch Dateipfade aus List öffnen und Inhalt rausschreiben

Hallo Community,

ich habe eine List<String> mit mehreren Dateipfaden und ich würde gerade diese Dateien öffnen
und den Inhalt aller zusammen in eine neue Datei Schreiben.

Meine Idee war es mit Hilfe von einem StreamReader und einem StreamWriter in einer foreach-Schleife alles rauszuschreiben.
Jedoch krieg ich das nicht hin.
Habt ihr vielleicht Tipps oder andere Lösungsvorschläge?

16.834 Beiträge seit 2008
vor 2 Jahren

Was hast Du denn bisher versucht? Wo kommst Du nicht weiter?
Mit "krieg ich nicht hin" können wir kaum helfen.

M
malikclk1 Themenstarter:in
2 Beiträge seit 2021
vor 2 Jahren

Ja tut mir leid. Hatte eine kurze denkblockade.

Ich hab es aber inzwischen so gelöst


 StreamWriter sw = new StreamWriter(newGrpFileName);

      
      foreach (string item in srcPaths)
      {
        filePath = item;
        string srcContent= File.ReadAllText(item, Encoding.Default);
        sw.WriteLine(srcContent);
       
      }

16.834 Beiträge seit 2008
vor 2 Jahren

Damit Du Dir das Encoding nicht verhaust (und Dich auch im nichts kümmern musst, kannst Du einfach mehrere Streams mergen.
Dazu gibts die CopyTo Methode. Und damit auch nichts blockiert gibts async/await und CopyToAsync


await using var targetStream = File.Create(targetFilePath).ConfigureAwait(false);

foreach (var filePath in filePathCollection)
{
    await using var fileStream = File.OpenRead(filePath).ConfigureAwait(false);
    await fileStream.CopyToAsync(targetStream).ConfigureAwait(false);
}

using bei Handle-Interaktionen nicht vergessen (oder manuell Disposen).
https://docs.microsoft.com/de-de/dotnet/csharp/language-reference/keywords/using-statement