在 Linux 中从内存中压缩文件

发布于 2024-11-14 11:57:09 字数 183 浏览 3 评论 0原文

我正在开发必须加密和压缩文件的应用程序。因此,我在内存中创建一些数据(文本、二进制或其他数据),对其进行加密并保存到磁盘(文件 1 和文件 2)。我称之为“zip out.zip file1 file2”。

我不想将此文件保存到磁盘,而是立即创建 zip 并从内存中打包这些文件。

我该怎么做呢?

多谢!

I'm working on application that must enrypt and zip files. So, I create some data in memory (text, binary or whatever), encrypt it and save to disk (file1 and file2). The I call e.g. "zip out.zip file1 file2 ".

I do not want to save this files to disk, but immediately create zip and pack these files from memory.

How should I do that?

Thanks a lot!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

也只是曾经 2024-11-21 11:57:09

您可以尝试使用 zlib 库 来从内存缓冲区创建 zip 文件。

boost:iostreams 也可能是一个不错的选择解决方案。

You could try to use the zlib library to be able to create zip files from memory buffers.

The boost:iostreams could also be a good solution.

桃气十足 2024-11-21 11:57:09

对于 zlib,贡献中有一个名为 minizip 的 zip 扩展。对于 minizip,您可以在 作者页面 上找到使用内存缓冲区的代码:

Justin Fletcher 为 ioapi 代码编写了一个非常简单的内存访问方法实现 (ioapi_mem_c.zip )。

For zlib there is an extension for zip called minizip in the contribs. For minizip you can find code to work with in-memory buffers on the authors page:

Justin Fletcher wrote a very simple implementation of a memory access method for the ioapi code (ioapi_mem_c.zip).

儭儭莪哋寶赑 2024-11-21 11:57:09

注意一定要先压缩再加密。加密数据无法再被压缩。

有趣的是,我找不到一个库来从 C 创建 ZIP 文件。 zlib 只允许 (解压缩 ZIP 存档中的各个条目。

它带有 contrib/minizip;也许这可以帮助你开始。

Note that you must compress first and then encrypt. Encrypted data can't be compressed anymore.

Interestingly enough, I wasn't able to find a library to create ZIP files from C. zlib only allows to (de-)compress individual entries in a ZIP archive.

It comes with contrib/minizip; maybe that can get you started.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文