什么是压缩目录到单个文件的方法

不知道怎么问,所以我会解释一下情况。

我需要存储一些压缩文件。 最初的想法是创build一个文件夹并存储所需的压缩文件,并创build一个文件来保存关于每个压缩文件的数据。

但是,我不能创build许多文件,只能有一个。 我决定创build一个压缩文件,其中包含有关进一步数据的头文件,头文件保存了压缩的数据。 但是这个选项有缺点,例如编辑这样的文件在创build之后需要很长时间,因为即使我想添加一个小文件也必须完全重写。

所以,如我所想,我需要创build一些具有特定属性的文件夹,并创build尽可能多的文件。 这甚至有可能吗?

我正在为Windows创build一个应用程序,所以我可以使用任何在Windows上工作的东西,而且我正在使用C ++进行编码。

注意:单个文件是必需的,因为,例如,它将通过电子邮件发送,并附加许多文件不是​​一个理想的解决scheme。

注:我不需要压缩algorithm,我需要一些方法来有效地存储在单个文件中的一切。

Solutions Collecting From Web of "什么是压缩目录到单个文件的方法"

您可以创建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-在Linux上的tar-usage-gnu-tar /命令行工具),但似乎没有重新创建整个存档。 我认为你必须首先创建更大的虚拟条目,以便以后有足够的可用空间,以便这些条目可以用所有需要的数据替换。