我在目录中有很多文本文件,我需要将它们合并为一个
我尝试了以下代码
File.WriteAllLines(
outputFileName,
Directory.GetFiles(directory, "*.txt")
.SelectMany(f =>
File.ReadLines(f).Concat(new[] { Environment.NewLine })));
它工作正常但我的问题是我在每个文件的内容之间得到空白行。有没有办法修改它以获得没有那些空行的文本文件?
答案 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());
}
}
}