合并目录中的文件c#

时间:2014-04-19 10:00:56

标签: c#

我在目录中有很多文本文件,我需要将它们合并为一个

我尝试了以下代码

File.WriteAllLines(
    outputFileName,
    Directory.GetFiles(directory, "*.txt")
        .SelectMany(f =>
            File.ReadLines(f).Concat(new[] { Environment.NewLine })));

它工作正常但我的问题是我在每个文件的内容之间得到空白行。有没有办法修改它以获得没有那些空行的文本文件?

3 个答案:

答案 0 :(得分:3)

Environment.NewLine替换为String.Empty

答案 1 :(得分:2)

根据要求将我的评论转换为答案。

您似乎在每个文件的末尾连接Environment.NewLine,这会在每个文件的内容之间添加新行。如果那不是您需要的,为什么要使用该声明呢?

删除Concat(new[] { Environment.NewLine })应该会产生预期的结果。

var allLines = Directory.GetFiles(directory, "*.txt")
                        .SelectMany(f => File.ReadLines(f));
File.WriteAllLines(outputFileName, allLines);

答案 2 :(得分:0)

请尝试以下代码:

string[] txtFiles;
        txtFiles = Directory.GetFiles(txtFileDestination.Text, "*.txt");
        using (StreamWriter writer = new StreamWriter(txtFileDestination.Text + @"\allfiles.txt"))
        {
            for (int i = 0; i < txtFiles.Length; i++)
            {
                using (StreamReader reader = File.OpenText(txtFiles[i]))
                {
                    writer.Write(reader.ReadToEnd());
                }
            }
        }