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

Gil*_*lla 2 c# linq merge file

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

use*_*116 9

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

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

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

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

这样称呼:

ConcatenateFiles("test.out", Directory.EnumerateFiles(inputDirectory, @"*.txt"));
Run Code Online (Sandbox Code Playgroud)