使用Linq to Objects合并目录中的文件

时间:2011-07-15 20:37:55

标签: c# linq file merge

我在目录中有一组txt文件。我想将它们全部合并到一个附加的竞争中。如何使用Linq实现这一目标?

1 个答案:

答案 0 :(得分:9)

你可以在.Net 4中相对容易地做到这一点:

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

您可以将其提取到方法中:

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

这样称呼:

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