多文件的合并与分解

本程序示例如何将多个文件合并成一个文件,并能够自分解。此技术在制作 安装程序时非常有用。我在本网站学到了此技术,并将他整理扩展,能够合并文 件和目录,个数不限。

核心程序包括一个合并文件类 CCombineFiles,一个分解文件的类 CExtractFiles 和一个表示文件或目录信息的数据类 FileInfo 文件和目录的信 息都由FileInfo类表示。此类定义如下: class FileInfo 
{
public:
  const FileInfo &operator = (const FileInfo &fi);
  FileInfo(CString szFileName, UINT nFileSize, UINT nPos, char type = 0);
  FileInfo();
  virtual ~FileInfo();
public:
  CString szFileName;
  UINT nSize;
  UINT nPos;
  char type; // d --- directory , f --- file , other --- no define
};

合并文件类CCombineFiles定义如下:

class CCombineFiles
{
public:
  bool Combine(CStringArray &fileList, CString szToFileName);
  CCombineFiles(CString szExeFileName);
  virtual ~CCombineFiles();
public:
  bool WriteFileInfo(FileInfo fi, FILE *fp);
  bool WriteString(CString szStr, FILE *fp);
  bool WriteListInfo(CArray &fiList, FILE *fp, UINT nStartOffset);
  bool CombineFile(CString szFileName, FILE *fp);
  bool CombineDirectory(CString szDir, FILE *fp);
  CString m_szExeFileName;
};

时间: 2025-01-29 10:43:11

多文件的合并与分解的相关文章

用C#实现文件分割合并器

文件分割器主要是为了解决实际生活中携带大文件的问题,由于存储介质容量的限制,大的文件往往不能够一下子拷贝到存储介质中,这只能通过分割程序把的文件分割多个可携带小文件,分步拷贝这些小文件,从而实现携带大文件的目的.而合并器的作用则能够把这些分割的小文件重新合并,恢复原来的文件..Net FrameWork SDK中提供的许多处理文件的类库,通过这些类能够简捷.灵活的实现对文件的操作.本文的主要内容就是探讨一下Visual C#在对文件编程中的一个比较流行的应用--文件分割器和合并器.下面就首先了解

服务器-nginx上传后的文件怎么合并?

问题描述 nginx上传后的文件怎么合并? 按照网上的做法,在下载了1.3.8以后的版本继承upload_module的时候安装了一个补丁文件,导致上传都是分片上传的,怎么合并? 解决方案 用现在最新稳定版本1.6.2试试呢

php断点续传之文件分割合并详解_php技巧

php实现断点续传,就需要把大文件分割成多个小文件,然后单个上传.传完后在合并. │ merge.php –合并文件脚本 │ merge.zip –合并后文件 │ socket.zip –需要分割的文件 │ split.php –分割文件脚本 │ └─split –分割后小文件目录 下面是源码 split.php <?php $fp = fopen("socket.zip", "rb"); $filesize = 10; $i = 0; $no = 1; wh

JAVA之旅(三十)——打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码

JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个阳光明媚的周末,一个又一个的周末,周而复始,不断学习,前方的路你可曾看见?随我一起走进技术的世界,流连忘返吧! 一.打印流PrintWriter 打印流有PrintWriter和PrintStream,他的特点可以直接操作输入流还有文件 该流提供了打印方法,可以将各种数据类型原样打印 file对象

使用Aspose.Cell控件实现多个Excel文件的合并

之前有写过多篇关于使用Apose.Cell控件制作自定义模板报表和通用的导出Excel表格数据的操作,对这个控件的功能还是比较满意,而且也比较便利.忽然有一天,一个朋友说:你已经有生成基于自定义模板报表了,可是我每个单位都导出一张相同的报表的话,我岂不是要生成很多文件,而且对比查看也不方便,有没有更好的办法合并他们到一个文件里面呢?这样我看报表就方便很多了.本文主要介绍如何实现基于一个自定义报表模式,生成多个类似报表合并在一个文件中具体操作. 查询Apose.Cell控件的使用介绍,WorkBo

Linux系统下将多个文件内容合并为一个文件的方法

  现在的工作最重视的是什么?当然是工作能力和工作效率,很多使用Linux系统的小伙伴们都遇到同意一个问题,想要导入数据库的时候,如果一个文件一个文件的导入的话,进程很慢,拖延时间,从而降低了工作效率.所以想找到一个新方法,可以将多个文件合成一个,这样不仅导入方便,而且速度也快,似乎是个不错的方法呢!下面小编就教大家Linux系统中如何将多个文件合成为一个,希望对大家有用! 在iDB Cloud 中发现导出的数据库文件是按照每个表生成的SQL文件,这么多单独的文件再导入到其他数据库中是个麻烦事,

Word插入文件 VBA 合并 文件

(1)Word中有的时候,需要合并多个文件.Word本身提供了非常简单的方法.只需使用菜单"插入->文件"命令即可完成该操作.   VBA代码:Selection.Range.InsertFile(AFileName, '', False, False, False);   (2)可是会遇到一点问题 插入的文件,为啥不页眉信息丢失了.   如:我插入的文件某些页面是横向,但是现在插入后,不是横向的.   其实解决这个问题,是很容易的,那就是在插入文件的时候,选择"链接&

分别使用c、shell语言实现文件内容合并 -- 2014百度面试题目

请分别使用c语言和shell语言完成文件内容的合并? 要求 一个文件A中内容以行存储,如果命名为a1,a2,a3....行,另一个文件B中为b1,b2,b3,b4,b5.....A和B文件内容不一定等长,使用c.shell分别实现内容合并,形式为a1b1a2b2a3b3a4b4b5..... 解析    程序环境为Linux环境下gcc编译. 假设A.txt内容为 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

多个js与css文件的合并方法详细说明_javascript技巧

在Web项目的开发中,js,css文件会随着项目的开发变得越来越多,越来越大,这就给给性能方面带来一些问题,如,页面引入的的js,css越多的话,那么对就增加了http请求数,解决该问题的一个好的方法就是合并js,css文件. 下面就简单介绍一个方法,十分简单.下面介绍以合并js文件为例 (1) G.js文件 复制代码 代码如下: ~function(){ window.G={}; G.Method={ add:function(){ alert(111);} ,sub:function(){