C# 通过二进制,将多个文件合并为一个。
2017-01-18 17:42
561 查看
C# 通过二进制,将多个文件合并为一个。
/// <summary> /// 合并文件 /// </summary> /// <param name="strDirectory"></param> /// <param name="strMergeResultFile"></param> private void MergeFiles(string strInputDirectory, string strMergeResultFile) { string[] arrFileNames = Directory.GetFiles(strInputDirectory); int iSumFile = arrFileNames.Length; //progressBar1.Maximum = iSumFile; FileStream AddStream = new FileStream(strMergeResultFile + "_temp", FileMode.OpenOrCreate); BinaryWriter AddWriter = new BinaryWriter(AddStream); long firstFileLength = 0; FileStream TempStream = null; BinaryReader TempReader = null; //文件长度列表 string allFileLength = ""; //文件长度和文件内容叠加 { for (int i = 0; i < iSumFile; i++) { TempStream = new FileStream(arrFileNames[i], FileMode.Open); TempReader = new BinaryReader(TempStream); AddWriter.Write(TempReader.ReadBytes((int)TempStream.Length)); if (firstFileLength == 0) { firstFileLength = TempReader.BaseStream.Length; allFileLength = firstFileLength.ToString().PadLeft(20, '0'); } //暂时只处理2个文件的情况,下面是多文件 //allFileLength += "," + TempReader.BaseStream.Length.ToString().PadLeft(20, '0'); TempReader.Close(); TempStream.Close(); } allFileLength = allFileLength.Trim(','); //释放资源 AddWriter.Flush(); AddWriter.Close(); AddStream.Close(); TempStream = null; TempReader = null; } //创建含有头信息的文件- 也达到了加密的效果 { System.Text.UTF8Encoding UTF8 = new System.Text.UTF8Encoding(); byte[] BytesMessage = UTF8.GetBytes(allFileLength); AddStream = new FileStream(strMergeResultFile + "_r", FileMode.OpenOrCreate); AddWriter = new BinaryWriter(AddStream); //文件头 AddWriter.Write(BytesMessage); //写入原来文件 TempStream = new FileStream(strMergeResultFile, FileMode.Open); TempReader = new BinaryReader(TempStream); AddWriter.Write(TempReader.ReadBytes((int)TempStream.Length)); long cc = TempReader.BaseStream.Length; TempReader.Close(); AddWriter.Flush(); AddWriter.Close(); TempStream.Close(); //释放 TempReader = null; AddWriter = null; TempStream = null; } //删掉临时 File.Delete(strMergeResultFile + "_temp"); }
相关文章推荐
- [C语言] 文件操作,合并两个二进制文件为单独一个二进制文件;
- C#通过序列化的方式存读类、结构、数组等为二进制文件
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
- 利用Costura.Fody制作绿色单文件程序(C#程序(含多个Dll)合并成一个Exe)
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
- 怎样通过C#运行一个.sql的脚本文件?
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
- C# 多个CSV文件合并成一个文件
- 通过创建临时表合并某一个库的hive小文件
- C#实现合并多个图像文件为一个动态GIF(转)
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径
- c#(Asp.net)多个Excel文件合并到一个新的excel中
- C# Visual Studio 2005中将一个TextBox中的内容通过FileStream写到文件中
- C# 一个通过.xsd文件动态绑定数据的水晶报表
- 一个C#通过iTextSharp封装的PDF文件操作类代码
- 文件操作,合并两个二进制文件为单独一个二进制文件
- C# Visual Studio 2005中通过参数创建一个文件
- C#将制定文件夹下的PDF文件合并成一个并输出至指定路径