2 Stimmen

Zusammenführen von Dateien in einem Verzeichnis mit Linq to Objects

Ich habe eine Reihe von txt-Dateien in einem Verzeichnis. Ich möchte sie alle zu einer einzigen Datei mit angehängten Inhalten zusammenführen. Wie kann dies mit Linq erreicht werden?

9voto

user7116 Punkte 61589

Dies ist in .Net 4 relativ einfach möglich:

File.WriteAllLines(
    outputFileName,
    Directory.EnumerateFiles(inputDirectory, @"*.txt")
             .SelectMany(file => File.ReadLines(file)));

Sie könnten dies in eine Methode extrahieren:

public static void ConcatenateFiles(
    string outputFileName, IEnumerable<string> inputFiles)
{
    File.WriteAllLines(outputFileName, inputFiles.SelectMany(File.ReadLines));
}

Das heißt so:

ConcatenateFiles("test.out", Directory.EnumerateFiles(inputDirectory, @"*.txt"));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X