将目录压缩为单个文件的方法有哪些
What are ways to compress directory into single file
不知道该怎么问,所以我会解释一下情况。
我需要存储一些压缩文件。最初的想法是创建一个文件夹,根据需要存储尽可能多的压缩文件,还创建一个保存每个压缩文件数据的文件。
然而,我不被允许创建许多文件,并且必须只有一个。我决定创建一个压缩文件,它有一个关于进一步数据的头,在头之后保留压缩数据。但这个选项有缺点,例如,在创建这样的文件后编辑它需要很长时间,因为即使我想再添加一个小文件,它也必须完全重写。
所以,正如我所想象的,我需要创建具有一些特定属性的文件夹,并在其中创建尽可能多的文件。这可能吗?
我正在为Windows创建一个应用程序,这样我就可以使用任何在Windows上工作的东西,并且我正在用C++进行编码。
注意:需要一个文件,因为例如,它将通过电子邮件发送,并且附加多个文件不是理想的解决方案。
注意:我不需要压缩算法,我需要一些方法来有效地将所有内容存储在单个文件中。
您可以创建一个SQLite数据库或SQL Server Compact Edition数据库(驻留在单个.sdf
文件中),并将所有数据存储为BLOB。数据库管理系统应该足够容易,可以与应用程序的其他二进制文件一起部署。
在SQL Server Compact的情况下,我不确定从非托管代码(C++)中使用它有多容易。这在.NET中是很容易的,但我很确定它也可以在C++中完成;不过,这需要一些研究。
至少,这个堆栈溢出问题涉及如何通过OLE DB访问接口从C++连接到这样的数据库。
使用7zip SDK并将所有内容保存在zip文件中怎么样?
http://www.7-zip.org/sdk.html
作为另一种选择,您可以使用tar文件:一个用于自定义标头的文件条目,其中包含其他条目(压缩等)的信息,所有文件都作为tar文件中的条目。我不知道用库函数替换条目是如何工作的(在这里我得到了信息,至少在gnu-tar中是可能的http://www.karkomaonline.com/index.php/2005/03/basic-tar-usage-gnu-tar/linux上的命令行实用程序),但似乎不需要重新创建整个归档就可以了。我认为一开始您必须创建更大的伪条目,以便以后有足够的可用空间,这样这些条目就可以用所有需要的数据替换。
- 如何使用curlpp通过POST方法上传文件和json数据
- 一种在C++中读取TXT配置文件的简单方法
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 在C++中包含原型文件的正确方法是什么?
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 不带预处理器的调用方法/文件的文件名/行号
- 引用文件的适当方法是什么?
- 在文件中写入而不是在 c++ 中使用 "<<" 的替代方法?
- 查找定义我的 C/C++ 函数/宏的文件比'grep'更简单的方法
- 读取大文件(>2GB)(文本文件包含以太网数据)并通过不同参数随机访问数据的最佳方法是什么?
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- C++:std::ofstream 方法 open() 在第二次迭代时擦除打开的 ifstream 文件
- 如何使用 C/C++ 和 system() 系统调用以外的其他方法在 Linux 中获取文件功能?
- 创建进行生产构建并创建调试信息的C++生成文件的最佳方法?
- 是否有正确的方法对生成文件中的对象文件使用模板命令?(C++)
- 将位字符串转储到二进制文件的最佳方法是什么
- 在目录中查找所有.cpp.h文件(include,src等)的传统方法
- 通过boost asio iostream下载大文件的最快方法是什么?
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- 在 *.cpp 文件中实现的 c++ 函数/方法永远不会内联扩展吗?