问题标签 [7zip]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
40658 浏览

java - Java中如何使用LZMA SDK进行压缩/解压

http://www.7-zip.org/sdk.html 这个站点提供了一个用于压缩/解压缩文件的 LZMA SDK,我想试一试,但我迷路了。

有人有这方面的经验吗?还是教程?谢谢。

0 投票
1 回答
1395 浏览

valgrind - Valgrind 地块不为 7-Zip 生成配置文件输出

我想使用 valgrind massif 来计算 7-Zip 使用的堆内存。当我在 7-Zip 上运行地块时,它不会产生任何输出。这是命令。

我希望有一个名为 massif.out 的输出文件。pid在当前目录中,但没有产生这样的输出。我应该补充一点,在 gzip、bzip2、compress 等其他压缩工具上使用 massif 会产生 massif.out。pid文件。

我也用过valgrind -v,那里也没有有用的信息。

关于为什么这不适用于 7-Zip 的任何想法?

0 投票
1 回答
1266 浏览

c# - C# - 如何使用 7-zip 库(即不是 .7z,而是 .zip)创建常规 ZIP 存档?

这是我在这里的第一个问题,所以请耐心等待。

我的目标是在 C# 中创建一个基本的 .zip 存档。我曾尝试使用 .NET 的内置GZipStream类并设法做到这一点,但是我遇到的问题是我无法将文件命名为“usercode.zip”,而存档文件不会丢失其扩展名。由于限制,我无法让我的程序将这些文件创建为“usercode.trf.zip”,这是我找到的将文件名的扩展名完整保留在存档中的唯一方法。

我已经尝试使用许多其他压缩库,但我似乎无法让它们正常工作或按我想要的方式工作。

我遇到了一个SevenZipHelper库,它提供了一些漂亮的函数来使用 LZMA(或 7-zip)库来压缩文件。

我正在使用的代码如下所示:

这会使用 7-zip 算法巧妙地创建一个压缩文件。问题是我不能保证使用这个程序的客户端可以访问 7-zip,所以文件必须是正常的 zip 算法。我已经浏览了 helper- 以及 7-zip 库,似乎可以使用这个库来使用普通的“ZIP”算法压缩文件。我似乎无法弄清楚如何做到这一点。我注意到一些地方的属性设置,但我找不到任何文档或谷歌搜索告诉我在哪里设置它。

我意识到可能有更好的方法来做到这一点,而我只是错过了一些东西,但我不能坐下来永远为这样一个本应简单的任务而奋斗。任何帮助将不胜感激。

0 投票
2 回答
1221 浏览

c# - 为什么压缩然后未压缩不同长度的流

我正在使用 SevenZipSharp 库来压缩然后解压缩包含一个简单序列化对象的 MemoryStream。但是,压缩流和解压缩流的长度不同。

从下面运行的代码中我得到

输入长度:174 输出长度:338

(SevenZipSharp dll 包含在参考中,7z.dll 包含在项目输出中)

谁能帮我解释为什么会这样?

谢谢,

0 投票
7 回答
4456 浏览

c# - 使用 7zip 检测文件是否为存档

我想使用 SevenZipSharp 来确定文件是否为存档。我知道这是可能的,因为在资源管理器中,如果我将 .zip 重命名为 .bmp,7zip 仍会将其识别为存档。

--edit:换句话说,我希望 7zip 告诉我文件(无论扩展名如何)是否包含某种受支持的存档(zip、tar、rar、iso 等)

谢谢,菲德尔

0 投票
2 回答
2877 浏览

open-source - 如何使用 7z DLL 压缩许多小块数据并将其附加到文件中

我想使用 7z DLL 将少量数据附加到一个压缩文件中。目前我最好的猜测是解压缩 7z 文件,附加数据,然后重新压缩它。显然,如果 7z 文件的大小变大(比如 1 gb)并且我想每秒保存一个新块,这不是一个好的解决方案性能。我怎样才能以更好的方式做到这一点?

我可以使用 7z DLL 支持的任何压缩格式。

0 投票
1 回答
573 浏览

installation - 在基于 WiX 的安装期间提取 SFX 时出现问题

我的 WiX 项目中有以下代码

其中 help_zip 是我创建的一个 7z SFX 存档,用于捆绑我们的帮助文件并在安装过程中将它们提取到我们的 DocFolder 中。唯一的问题是,文件一直解压到 C:\Windows\SysWow64,而不是 DocFolder 指定的文件夹。有任何想法吗?

此外,help_zip.exe 位于 DocFolder 中,因此它甚至不需要参数来输出到它所在的目录,至少据我所知 =\

编辑我已经编辑了上面的代码以显示我的解决方案。请注意,NativeCompilation 是我们创建的另一个动作(不是 WiX 的一部分),NOT REMOVE 是指在我们不卸载时执行该动作。

0 投票
3 回答
9173 浏览

windows - 使用 forfiles 和 7zip 的文件名中的空格

我正在编写一个脚本来压缩旧文件,使用 forfiles 进行循环,使用 7za 进行压缩。我一直在努力解决如何处理文件名中的空格,虽然我找到了一个似乎可行的解决方案,但不明白为什么我对将其部署到生产环境感到紧张。

这是似乎有效的命令:

请注意,7za 的路径和文件名参数有 3 组(是的,3 组)引号。一组引号什么都不做,两组引号导致脚本将目录中的每个文件都添加到存档中,而不是指定的一个,并且三个似乎可以工作。

谁能解释为什么需要这么多?我会认为在一组之后剩下的都是多余的,但显然我错了。

0 投票
1 回答
13711 浏览

c++ - 7-Zip:有什么好的教程吗?

我正在考虑使用 7-Zip 格式来打包我的应用程序文件,因为它是一种非常紧凑且流行的格式。不过,我找不到一些关于如何使用 C++ SDK 的教程。我想要一些教程,教我如何:

  • 从内存(缓冲区)而不是直接从磁盘打开存档。
  • 将存档中的单个文件提取到缓冲区,而不是磁盘。
  • 检查是否可以在存档中找到某个文件。
0 投票
1 回答
2228 浏览

c# - 如何在 C# 中使用 SharpZipLib 提取多卷 zip 文件?

我有一个文件,Setup1.cab,它被分成我使用 7zip 归档的 Setup1.zip.001 和 Setup1.zip.002。一旦这些卷到达目的地,我希望能够使用 C# 将该文件从两个档案中提取到它们将驻留的同一目录中。这是 SharpZipLib 能够做到的,还是我应该使用其他工具?

否则,有没有办法使用 C#(或其他工具 - 我打开了!)将两者结合到一个 zip 文件中,然后使用 SharpZipLib 将其解压缩?谢谢!

编辑:7zip 不会安装在目标机器上。另外,我愿意使用不同的方法来归档原始文件;我只需要它在 500MB 以下的块中,原始文件是 570MB。