这是我目前的代码
Dim Paths() As String = Directory.GetFiles("files*.txt")
For Each Path As String In Paths
File.AppendAllText("merged.txt", File.ReadAllText(Path), Encoding.Default)
Next
问题似乎是使用这种方法,在处理几个大文件时性能很差。
是否有更有效的合并文本文件的方法?也许首先将所有文件读入流读取器,然后在一次操作中创建输出文件?
答案 0 :(得分:2)
试试这个:
using (StreamWriter sw = new StreamWriter("merge.txt"))
{
string[] paths = Directory.GetFiles("files*.txt");
foreach (string path in paths)
using (StreamReader sr = new StreamReader(path))
{
sw.Write(sr.ReadToEnd());
sw.WriteLine("");
}
}
我认为缓慢的操作是在File.AppendAllText中打开 - >写入>关闭目录中每个txt文件的merge.txt文件