Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

Mehrere Dateien durch Dateipfade aus List öffnen und Inhalt rausschreiben
malikclk1
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Mehrere Dateien durch Dateipfade aus List öffnen und Inhalt rausschreiben

beantworten | zitieren | melden

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?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15983

beantworten | zitieren | melden

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

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
malikclk1
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

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);
       
      }
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 15983

beantworten | zitieren | melden

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
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers