Вы можете сделать это в .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"));