我需要使用C#连接3个文件.头文件,内容和页脚文件,但我想这样做很酷.
酷=非常小的代码或非常快(非汇编代码).
码:
static void MultipleFilesToSingleFile(string dirPath, string filePattern, string destFile)
{
string[] fileAry = Directory.GetFiles(dirPath, filePattern);
Console.WriteLine("Total File Count : " + fileAry.Length);
using (TextWriter tw = new StreamWriter(destFile, true))
{
foreach (string filePath in fileAry)
{
using (TextReader tr = new StreamReader(filePath))
{
tw.WriteLine(tr.ReadToEnd());
tr.Close();
tr.Dispose();
}
Console.WriteLine("File Processed : " + filePath);
}
tw.Close();
tw.Dispose();
}
}
Run Code Online (Sandbox Code Playgroud)
我需要优化它,因为它非常慢:平均大小为40 - 50 Mb XML文件的45个文件需要3分钟.
请注意:45个平均45 MB的文件只是一个例子,它可以是大小n的文件m数,其中n有数千个m,平均可以是128 Kb.简而言之,它可以变化.
您能否提供有关优化的任何观点?
我想将目录中所有制表符分隔的文本文件合并到一个巨大的文本文件中.这些文件没有标题,所有文件中的列都相互正确对齐,所以我们假设我们不必担心格式化一致性问题.
我只需要按顺序拼接/加入/合并所有文件.
这是我的代码:
string[] array = Directory.GetFiles(@"C:\MergeThis", "*.txt");
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int nCount = 0; nCount <= array.Count(); nCount++)
{
sb.Append(System.IO.File.ReadAllText(array[nCount]));
}
string output = sb.ToString();
string outputFilePath = @"C:\MERGED DATA.txt";
System.IO.File.WriteAllText(outputFilePath, output);
Run Code Online (Sandbox Code Playgroud)
我的问题是......有更好/更快/更简洁的方法吗?