使用cmd进行文件合并速度很快,比常规的打开文件流写入要快很多。
如果是将a文件合并到b文件中(a,b都已存在),那么在b文件的结尾会多出来一个特殊字符,不知道如何去掉。但是如果将a、b文件合并到一个新文件c中就不存在这个问题,一直未解决,暂时用临时文件进行合并,合并完成后删除即可。
//合并文件 Process proc = new Process(); proc.StartInfo.CreateNoWindow = true; proc.StartInfo.FileName = "cmd.exe"; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardError = true; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.RedirectStandardOutput = true; //绑定执行完成消息监听 proc.EnableRaisingEvents = true; proc.Exited += new EventHandler(proc_Exited); proc.Start(); //先合并tmp和varchar文件到中间文件(由于文件合并后结尾有个特殊字符无法取消,合并到中间文件不存在这个问题) proc.StandardInput.WriteLine("copy c:\1.txt+c:\2.txt c:\3.txt &exit"); proc.WaitForExit(); proc.Close();注:WirteLine方法后面需要加
&exit
否则无法正常监听到执行结束方法。