C# 通过二进制,将多个文件合并为一个。
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# 通过二进制,将多个文件合并为一个。的更多相关文章
- 多个.txt文件合并到一个.txt文件中
如果想要将多个.txt文件合并到一个.txt文件中,可以先将所有.txt文件放到一个文件夹中,然后使用.bat文件完成任务. 例如,在一个文件夹下有1.txt, 2.txt, 3.txt三个文件,想把 ...
- 将目录下面所有的 .cs 文件合并到一个 code.cs 文件中,写著作权复制代码时的必备良药
将目录下面所有的 .cs 文件合并到一个 code.cs 文件中,写著作权复制代码时的必备良药 @echo off echo 将该目录下所有.cs文件的内容合并到一个 code.cs 文件中! pau ...
- 多个EXCEL文件合并成一个
Python的numpy处理起来会比较方便,有空实现一下,这里是Excel内部代码的方式: 合并方法如下: 1.需要把多个excel表都放在同一个文件夹里面,并在这个文件夹里面新建一个excel.如图 ...
- 把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中
把当前文件夹的xlsx或xls文件合并到一个excel文件中的不同sheet中步骤如下: 把需要合并的文件放到同一个文件夹 在该文件夹中新建一个excel文件 打开新建的excel问价,把鼠标放到sh ...
- 将多个sass文件合并到一个文件中
将多个sass文件合并到一个文件中 应用场景:制作angular npm包的时候,定义的一些全局样式,自定义主题色这类的情况下,多个scss文件会要合并成一个文件并写到dist文件里,发布到仓库中. ...
- Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格
Excel用Power Query把文件夹下所有文件合并为一个与合并多个表格 在 Excel Power Query 未出来之前,把文件夹下所有文件合并为一个与合并同一工作表中的多个工作表,需要用 V ...
- 一条命令将windows下多个ts文件合并为一个ts文件
首先在待合并的文件夹下创建concat.bat(名字随意啦),写入如下命令 copy /b "%~dp0"\*.ts "%~dp0"\new.ts 执行该命令后 ...
- 将STM32 iap hex文件与app hex文件合并为一个hex文件
日前公司产品需要增加远程升级功能,boot loader程序写好后交予生产部门使用时他们反馈每个产品程序需要刷写两次(一个boot loader 一个app程序),生产进度变慢浪费时间,于是乎研究如何 ...
- 如何将两个PDF文件合并到一个页面中
在目前职场办公中,很多使用的文件格式是PDF文件格式,由于工作的需要,经常需要将PDF文件合并在一起,但由于PDF文件不能直接编辑修改,不能OFFICE,WPS那样,通过复制粘贴将两者合并,那如何解决 ...
随机推荐
- 【转】集群/分布式环境下5种session处理策略
转载至:http://blog.csdn.net/u010028869/article/details/50773174 在搭建完集群环境后,不得不考虑的一个问题就是用户访问产生的session如何处 ...
- install ros-indigo-camera-info-manager
CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake: (find_package): Could not fi ...
- lnmp升级php
引言 服务器用的是lnmp一键安装包,但是php版本是5.5.项目用的是TP5.1需要php5.6的环境. 好慌! 进行升级操作 进入lnmp安装环境 ./upgrade.sh php 然后输入php ...
- npm 报错: npm ERR! Please try running this command again as root/Administrator.
解决方法: 1. 需要删除npmrc文件. 强调:不是nodejs安装目录npm模块下的那个npmrc文件 而是在C:\Users\{账户}\下的.npmrc文件.. 2. 在win8或者win10下 ...
- 这些HTML、CSS知识点,面试和平时开发都需要 No10-No11(知识点:表格操作、代码编写规则)
系列知识点汇总 1.基础篇 这些HTML.CSS知识点,面试和平时开发都需要 No1-No4(知识点:HTML.CSS.盒子模型.内容布局) 这些HTML.CSS知识点,面试和平时开发都需要 No5- ...
- c# lambda表达式学习
1. 普通绑定: public void button1_Click(object sender, EventArgs e) { MessageBox.Show("ok"); } ...
- C#属性升级版--自动属性-chapter 3 P34-36
使用C#属性,能够通过将数据与它的设置和检索方法分离的方式公开类中的一段数据. 例如: namespace LanguageFeatures { public class Product { ...
- StringUtils工具类的isBlank()方法使用说明
- Java 调用PHP的Web Service(三)
usoap是PHP环境中的开源soap工具,算是用得比较多的一个工具了. 在utf-8环境中,nusoap可以工作得很好.但是当用于中文环境中时,nusoap经常会出现一些让人不得其解的问题. 最近一 ...
- easyui panel自适应浏览器宽度
一.目标效果: 当浏览器窗口大小改变时.panel宽度始终为浏览器宽度的50%,panel高度则根据其中内容的多少而变化,横向竖向滚动条皆不出现.且不需要重新刷新浏览器或者其他js代码 兼容:chro ...