问题标签 [lzma]

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 投票
2 回答
15616 浏览

zip - 标准 ZIP 中使用哪种算法?

我已经用谷歌搜索、维基搜索并阅读了 ZIP 的 RFC,但找不到有关 ZIP 中使用的确切算法的任何信息。

我找到了有关 ZIP == TAR + GZIP 的信息

但是,我对这个信息感到困惑。

由于我记得 GZIP 使用 LZW 算法,而 TAR 使用 LZMA,我无法想象 ZIP == TAR + GZIP (LZMA + LZW - ???)

你能帮我找到 ZIP 的算法吗?我想实现它。

0 投票
1 回答
3453 浏览

c++ - 如何使用 lzma sdk 压缩文件夹?

http://www.7-zip.org/sdk.html
我可以用它来压缩文件,但是找不到压缩文件夹的功能

0 投票
0 回答
421 浏览

c - 使用 LzmaCompress 制作存档

我对压缩方法有点困惑。我确实知道如何使用此功能,并且它确实输出了一个更小的缓冲区,但是我如何使用 7zip sdk 使用压缩数据制作存档?

我很确定这是一个与任何压缩算法相关的问题。

0 投票
1 回答
4440 浏览

python - 使用 PyLZMA 解压

我使用这个脚本压缩我的文件

我使用PyLZMA 文档中显示的这种方法,因为它允许 7zip 或 lzma.exe 读取我的文件。使用 7zip 解压可以正常工作,但是当我使用 PyLZMA 时它不起作用。我用这个:

它在 pylzma.decompress 上停止,我收到以下错误:

TypeError:解压缩时出错:1

0 投票
1 回答
4967 浏览

c++ - 如何在 Linux 上构建“lzma sdk”

我想7-zip为我的应用程序使用存档并为此下载lzma sdk。尝试在 Linux (Debian) 上构建,但找不到方法。我在看,lzma.txt但我不明白如何完成这项工作。我也找不到任何文档或教程。我需要详细的指导如何构建LZMA SDK,因为我是 Linux 新手。

0 投票
2 回答
9861 浏览

launcher - 自定义 Minecraft 启动器

我想创建我自己的 Minecraft 启动器,当玩家检查强制更新时,它会下载修改后的 minecraft.jar、更新的 lwjgl(都不是大问题)和 .minecraft 目录中的 2 个额外文件夹。我可以通过将 MinecraftDownload 目录更改为我自己网站上的一个并将修改后的文件放在我的网站上来完成前 2 个操作,但我不完全知道如何让它下载并将存档解压缩到 .minecraft 目录中(我猜我将使用 lzma,因为它的库已经在那里)。

我是 Java 新手,但我做了一些非常好的 vb.net 编程,所以我知道标准开发术语。

0 投票
0 回答
805 浏览

actionscript-3 - LZMA 压缩来保护 .swf 文件?

我对 SWF 保护有点陌生,在谷歌搜索时,我发现Sothink SWF Decompiler用于轻松反编译,甚至可以对.fla文件进行短语处理,所以我得到了最新版本,发现如果我使用 LZMA 压缩,会出现一条消息:

swf 文件“foo.swf”已损坏。

我去了保存的地方,发现双击它就完美了。我还添加了代码,以便root.alpha在本地测试时将等于零。

那么,这对 SWF 窃贼是否足够好,或者我应该去获取加密软件,如 toKaos、SWF Encrypt 等?

编辑:在这里找到我要找的东西。希望它可以帮助其他可能偶然发现这个话题的人。

0 投票
2 回答
5593 浏览

actionscript-3 - 如何在 As3 中使用 ByteArray 方法解压 LZMA 压缩文件?

这是我用来压缩/解压缩文件的代码:

我的问题:此方法不解压缩 LZMA 压缩文件 :(

谁能告诉我如何重构上述代码以实现 LZMA 解压缩以及上述压缩代码是否足以用于 LZMA 压缩?如果不是,请举个例子。

编辑:经过长时间的搜索,我得到了这个 ,但我不太明白其中的示例代码:(有人帮忙吗?

0 投票
6 回答
14653 浏览

c# - 为什么 LZMA SDK (7-zip) 这么慢

我发现 7-zip 很棒,我想在 .net 应用程序上使用它。我有一个 10MB 的文件(a.001),它需要:

在此处输入图像描述

2 秒编码

现在,如果我能在 c# 上做同样的事情,那就太好了。我已经下载了http://www.7-zip.org/sdk.html LZMA SDK c# 源代码。我基本上将 CS 目录复制到了 Visual Studio 中的控制台应用程序中: 在此处输入图像描述

然后我编译并顺利编译。因此,在输出目录中,我放置了a.00110MB 大小的文件。在我放置的源代码中的主要方法上:

当我执行控制台应用程序时,应用程序运行良好,并且我a.7z在工作目录中获得了输出。问题是它需要很长时间。执行大约需要15秒!我也尝试过https://stackoverflow.com/a/8775927/637142方法,它也需要很长时间。为什么它比实际程序慢 10 倍?

即使我设置只使用一个线程: 在此处输入图像描述

它仍然需要更少的时间(3 秒对 15 秒):


(编辑)另一种可能性

可能是因为 C# 比汇编或 C 慢吗?我注意到该算法做了很多繁重的操作。例如比较这两个代码块。他们都做同样的事情:

C

输出

在此处输入图像描述

C#

输出

在此处输入图像描述

注意 c# 慢了多少。这两个程序都在发布模式下从 Visual Studio 外部运行。也许这就是为什么 .net 比 c++ 需要更长的时间的原因。

我也得到了同样的结果。就像我刚刚展示的示例一样,C# 慢了 3 倍!


结论

我似乎不知道是什么导致了问题。我想我会使用 7z.dll 并从 c# 调用必要的方法。执行此操作的库位于:http ://sevenzipsharp.codeplex.com/ ,这样我使用的库与 7zip 使用的库相同:

0 投票
3 回答
3615 浏览

ios - LZMA SDK 使用太多 RAM 解压缩 iOS (xcode)

我正在尝试在 iPhone/iPad 应用程序中使用 LZMA SDK,我的出发点是 Mo Dejong 提供的 iPhone 的 LZMA 示例项目,可在此处获得: https ://github.com/jk/lzmaSDK 原文在这里:http: //www.modejong.com/iOS/lzmaSDK.zip (我都试过了,我都得到了相同的结果)。

问题是提取使用的内存与 .7z 包含的未压缩内存一样多。换句话说,假设我有一个 40MB 的压缩文件,未压缩的文件是一个大约 250MB 的二进制 sqlite DB,它会慢慢地使用越来越多的内存,因为它将文件一直解压缩到 250MB。这将使 iPad1 或 iPhone4 之前的任何设备(256MB RAM)崩溃。我感觉很多人最终都会遇到同样的问题,所以现在的解决方案可以帮助很多开发人员。

我最初使用基于 Windows 的 7-zip(最新版本)和 16MB 字典大小在 PC 上创建了 .7z 文件。它应该只需要 18MB 的 RAM 来解压缩(在查看任务管理器的 PC 上进行测试时就是这种情况)。我还尝试使用 keka(开源 mac 存档器)创建存档,但它没有解决任何问题,尽管我可以确认 keka 本身在 mac 上提取文件期间仅使用 19MB 的内存,这是我所期望的。我猜下一步是比较 Keka 的源代码和 LZMA SDK 的源代码。

创建 .7z 文件时,我尝试了不同的字典大小和其他设置,但没有任何帮助。我还尝试在压缩之前将我的单个二进制文件分成 24 个较小的部分,但这也没有帮助(仍然使用超过 250MB 的 RAM 来提取 24 个部分)。

请注意,我对原始代码所做的唯一更改是使用更大的 .7z 文件。另请注意,提取完成后它会立即释放 RAM,但这无济于事。我觉得它并没有像提取应有的那样释放 RAM,或者它正在将整个内容放入 RAM 直到完成,然后才将其移出 RAM。此外,如果我尝试使用 mac 应用程序提取相同的确切文件,同时运行仪器,我看不到相同的行为(例如,在提取文件时,StuffIt Expander 的 RAM 最大约为 60MB,Keka,开源 mac存档器最大内存为 19MB)。

我不是一个 mac/xcode/objective-c 开发人员(还)所以任何帮助都将不胜感激。我可以改用 zip 或 rar,但我使用 LZMA 获得了更出色的压缩,所以如果可能的话,我想坚持使用这个解决方案,但显然我需要让它在不崩溃的情况下工作。

谢谢!

Instruments.app 分析示例应用程序的屏幕截图