问题标签 [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.
batch-file - 遍历批处理文件中的文件夹和文件?
这是我的情况。一个项目的目标是将一些附件迁移到另一个系统。
这些附件将位于父文件夹中,比如说“ Folder 0
”(请参阅此问题的图表以获得更好的理解),它们将被压缩/压缩。
我希望像这样调用我的批处理脚本:
我7za.exe
用作命令行提取工具。
我希望我的批处理脚本做的是遍历“ Folder 0
”的子文件夹,并将所有包含的 ZIP 文件提取到它们各自的文件夹中。
提取的文件必须与其各自的 ZIP 文件位于同一文件夹中。因此,“ File 1.zip
”中需要“”中包含的文件Folder 1
,依此类推。
我已经阅读了FOR...DO
关于Windows XP Professional Product Documentation - Using Batch Files
.
这是我的脚本:
我想在调用 7za.exe e %zippedFile 进行文件提取之前,我还需要更改实际目录,但我无法弄清楚这个批处理文件的方式(通过我知道命令行中的方式,即使我知道它是相同的指令“cd”)。
编辑#1
我已经收到了一些关于ServerFault
同一问题的提示。请参阅此链接中的答案。
但是,它是从根目录 (C:) 中提取的,而不是从给定的参数文件夹中提取的。
有人有想法吗?
编辑#2
批处理脚本似乎无法充分处理包含空格字符的文件夹和文件名。谁能证实我的想法?
编辑#3
我需要它是完全递归的,因为我不知道将使用它的目录结构。
编辑#4.a
有了@aphoria 的解决方案,我就快到了!唯一的问题是,假设它只需要
File5.zip
检索文件名来获取File5
,创建一个子文件夹File5
并提取File5.zip
到File5
子文件夹,然后,它想在其中创建一个File5
子文件夹Folder 1
,它应该在其中创建File1
子文件夹,以坚持我的示例.
编辑#4.b
根据需要,这是当前的代码:
任何人的想法?
我的猜测是它一次挖掘一个目录层次结构。这是交易。假设我们有一个Folder A
in Folder 1
(Folder 1\Folder A),然后,它从 搜索,然后Folder 1
返回Folder 5
% Folder 1\Folder A
subfolder% 变量的最后一个值。
感谢任何人的帮助。
objective-c - 如何在 C / Objective-C 中传递密码以解码 LZMA (7zip) 加密存档?
有谁知道如何在 LZMA SDK 中传递密码来解码功能?
iphone - iPhone (iOS) 的 7-ZIP (LZMA) 压缩
有人知道是否有适用于 iPhone (iOS) 的 7-Zip (LZMA) 实现吗?
c# - 使用 7zip 压缩文件的示例 C# .net 代码
我在我的机器上的 C:\Program 文件中安装了 7-zip 4.65。我想在 C# 代码中使用它来压缩文件。文件名将由用户动态提供。任何人都可以提供有关如何在 C# 代码中使用 7zip 的示例代码吗?
lgpl - 从专有应用程序中调用 7-Zip 的许可影响
我想在我的专有应用程序中使用 7-Zip。
7-Zip 是 LGPL
考虑到在我的应用程序中,我通过它的命令行界面调用,使用system()
如下:system( "7-Zip -blah -blah" );
- 如果我以这种方式使用 7-Zip,我是否有 LGPL 规定的任何义务?
- 如果我想将 7-Zips 的 7z.dll 和 7z.exe 与我的应用程序一起分发,以便用户无需单独安装 7-Zip,我是否有任何 LGPL 义务?
谢谢
java - 如何在 Android 中解压缩 7zip 存档?
我有一个7zip
存档,其中包含数百个文件,这些文件分为不同的目录。目标是从 FTP 服务器下载它,然后在手机上提取它。
我的问题是7zip
SDK 不包含很多内容。我正在寻找有关解压缩 7z 文件的示例、教程和片段。
(通过解压Intent
只是次要选项)
java - 在 Java 中解压缩包含多个文件和目录的 7zip 存档
我想用 Java 解压缩一个包含多个文件和目录的 7zip/lzma 存档。我尝试使用官方的 7zip SDK,但我失败了,因为我的编程技能对于这个主题并不那么先进。但是,我喜欢一些使 Java 支持更容易的库,谈到 LzmaOutputStream/LzmaInputStream - 但是我不知道如何使用这些“流”来解压缩多文件存档。我被困住了。
java - 7Zip在JAVA中的实现
我从 7zip 网站下载了 LZMA SDK,但令我失望的是它只支持压缩和解压缩,不支持 AES 加密。有谁知道在 JAVA 中是否有完全使用 AES 加密的 7zip 实现?谢谢。
问候,卡尔。
compression - 我们应该使用什么压缩格式;我们应该放 DEFLATE (.zip) 休息吗?
随着大多数 Linux 发行版放弃 gzip 和 bzip2 以支持 LZMA2 来压缩它们的包,以及许多平台的许多开源实现,我想知道:我们不应该让 DEFLATE 和.zip
格式(不幸的是,它被一遍又一遍地混为一谈)休息吗?并继续使用其他现代方式分发我们的(源)包?
GNU tar 支持J
使用xz
(另一个 LZMA2 压缩器)作为过滤器的开关:
但是,我倾向于使用7z
(p7zip 实现),它是7za
Linux 下用于创建档案的朋友。在创建档案时,我仍然使用“避免 tar-bombs”范例,这意味着档案中有一个目录,因此从命令行提取不会导致当前目录中的文件溢出(这是Linux 上的标准操作方式tar
,例如,但在 Windows 下这似乎不是一件值得做的事情)。
无论如何,似乎由于在包中的使用(例如 Fedora RPM 和 Ubuntu DEB),以及像tar
. 它具有很高的压缩率(在标准设置中远远超过 bzip2)并且速度也非常快(压缩比 gzip 稍慢,
我自己做了一些基准测试,但我想把重点放在一些更广泛的基准测试上:
- 在compressionratings.com上基于评级的基准
- maximumcompression.com上基于效率的基准测试
现在,您会注意到,作为参考实现的7-zip并没有出现在首位。然而 Freearc 使用它自己的.arc
格式,它不是真正的跨平台能力,并且与 80 年代的旧ARC 不兼容。nanozip 不是开源的,这是一种低迷,但重要的是算法,而不是存档器!
无论如何,现在使用 7-zip 及其衍生实现 ( xz ) 的性能不再是问题,而且压缩率不言自明,我觉得将我的源包分发为.7z
档案.tar.xz
。但是,我面前有两个障碍,我似乎无法克服:
WinRAR 的倡导者。不要误会我的意思,我对 WinRAR 或其用户没有怨恨,只是我不能在 Linux 上真正制作 RAR,而且没有必要,因为我们有免费的 LZMA2 工具。正如我所说,自从成为分发包的组成部分以来,它可以在任何现代分发中使用。由于制作 a
.7z
比 a需要大约相同的时间,.rar
而且 LZMA2 文件通常更小,我不明白为什么不使用 7-zip。tar 档案必须是 zip 或 bzip2,没有例外。这是一个很难的。为什么这么多人对 gzip 印象深刻?甚至 bzip2 在大多数情况下也没有太多使用。诚然,gzip 速度很快,对于按需压缩(例如在 Web 服务器中)或创建大型镜像备份时,这是一个很好的选择。但是分发软件呢?LZMA2非常不对称。虽然压缩需要时间,但解压缩速度非常快。
好的,现在我的问题来了:
既然 LZMA2 可以说是下一个更好的压缩算法,为什么人们不跳上火车呢?为什么人们仍然使用WinRAR,它是专有的,压缩比更差,并且没有移植到Linux(除了unrar
,但你显然不能用它创建档案)。为什么 Tarball 仍然大多是 gzip 压缩的?
有没有办法说服人们转向更新、可靠的归档格式,这不仅是跨平台的,而且是免费的?当我给某人一个以 结尾的文件时.7z
,他们往往不知道如何处理它,这会改变吗?
哦,这是我自己做的小基准测试。我到处使用默认设置:
(以字节为单位的大小;文件名Archiver_Format_Algorithm.Extension
:)
填充集由包含 DOS 安装的磁盘映像组成:
(大小以字节为单位)
c++ - 如何使用 7z sdk 提取 rar/zip 文件 (C++)?
我正在尝试编写一个小型的跨平台漫画书阅读器(Qt / C++)。我不在乎外面已经有什么,我知道有一些。
我的问题是我需要阅读漫画书格式,这些格式被重命名为 rar 和 zip 文件。
文档非常...不存在?任何人都没有“你好档案”文件。我该如何设置?
如果它可以更容易地假设我在任何特定的操作系统上,那么就这样做。我不断在 Kubuntu、OSX 和 Win7 之间切换以进行开发工作。