问题标签 [adm-zip]

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 投票
0 回答
320 浏览

javascript - 为什么 AdmZip 无法压缩大小为 525688 字节的文件夹的投掷范围错误?

编辑:我认为这是由于我的虚拟机空间不足。也很好奇,当 adm-zip 写入新的 zip 时,它不会从本地目录(源)中删除文件并将它们写入 Zip 文件夹(目标)吗?

我正在尝试使用adm-zip压缩文件夹并遇到以下错误。这是一个已知的错误 ?还是我在做一些愚蠢的事情?

我的代码如下所示:

du 命令给出以下大小。

0 投票
1 回答
637 浏览

node.js - 使用 adm-zip/unzipper/yauzl 解压在节点 10 中静默失败

我一直在尝试在我的代码中添加一个用例,在该用例中我尝试解压缩一个太大而无法放入磁盘空间的 zip,并且我希望我的代码会抛出 ENOSPC。我已经尝试了多个库,但它们都没有抛出错误,而是在没有完成压缩的情况下静默失败。我希望他们会抛出 ENOSPC 错误,但所有包似乎都记录了第一个 info 语句,该语句指出解压缩已经开始,但之后没有任何内容。他们中的大多数人创建了不完整的文件夹,无论他们在磁盘空间不足之前可以写什么。这是每个库的代码的样子。

我使用adm-zip的代码:

使用yauzl 的代码:

使用解压缩的代码:

使用extract-zip 的代码:

我的代码有问题吗?有什么特别的活动我需要听吗?

0 投票
0 回答
167 浏览

vue.js - Vue JS - 处理 zip 文件时更新数据值

我想我在这里缺少 Vue JS 反应性的东西。

我的问题是,当我使用文件系统和 Adm-Zip 解压缩文件时,某些数据值没有更新。

这是一些伪代码来显示我的问题。

that.total并且that.unzipped在代码执行时不更新。

这是我显示进度的模板代码。

任何帮助表示赞赏。

编辑 这是一个成功更新数据属性的测试方法。

0 投票
0 回答
875 浏览

javascript - Adm-zip 无效或不受支持的 zip 格式。未找到 END 标头

我收到此错误“无效或不受支持的 zip 格式。当我尝试使用 adm-zip(缓冲区)解压缩内存中的文件时,找不到 END 标头。我已经确认我要解压缩的文件也是一个 zip 文件。

0 投票
2 回答
3516 浏览

node.js - 使用 axios 下载 zip 并在内存中使用 adm-zip 解压缩(电子应用程序)

我需要下载一个文件axios并将其解压缩到电子应用程序的内存中。

我读了一些支持字节缓冲区构造函数的 SO 线程(例如),adm-zip但我在文档中看不到这一点。当我提取内容时,它的行为就像数组是空的,但事实并非如此。它只是创建一个文件并且不会抛出任何我不想使用的错误request,因为该 api 被标记为已弃用。我的代码是这样的:

我觉得超级愚蠢,因为我有一次工作,然后改变了一些东西,现在我似乎没有再次发现错误:/遗憾的是我没有提交工作状态......

编辑:所以,我们想通了:Electron 做了一些奇怪的事情,它返回一个数组缓冲区而不是 adm-zip 需要的缓冲区。由于我很懒,添加了包arraybuffer-to-buffer,现在代码可以工作了:

0 投票
0 回答
35 浏览

express - Adm-zip 不保存 zip 存档

因此,我收到一个 .xslx 文件,对其进行解析并获取第一列,将值转换为 DataMatrix 条形码图像,然后将其全部保存在 .zip 存档中:

因此,在我尝试保存 .zip 文件之前,一切正常。我只是什么都得不到。没有错误消息,没有文件,什么都没有。
如果什么都没有抛出错误,那有什么问题?

编辑:.xlsx 文件包含超过 600 多个条目

0 投票
1 回答
351 浏览

typescript - 在 TypeScript 中使用 proxyquire 和 sinon 存根 adm-zip

我想用玩笑对zip.adapter.ts类进行单元测试。我尝试了很多不同的方法来模拟/存根adm-zip包,但没有任何效果。

我首先尝试了 ts-mock-imports,但如果我尝试模拟 adm-zip,它总是会失败。然后我尝试了 sinon,但它要么无法存根 adm-zip,要么只是没有存根。我最后的手段是将 sinon 与proxyquire结合起来,但这似乎也不起作用....

有人知道为什么这不起作用吗?当测试调用unzip方法时,其中的代码仍然使用真正的 adm-zip 实现......

(我知道单元测试没有多大意义,因为一切都是模拟的,但由于我无法更改的测试覆盖率规则,我必须这样做)

zip.adapter.ts

zip.adapter.spec.ts


更新:

我让我的测试与 Jest 一起工作,但前提是我需要()我的模块。如果我在没有 require() 的情况下使用我的导入,则模拟不起作用。是否可以摆脱 require() 并仅使用导入?

0 投票
1 回答
278 浏览

node.js - 如何计算 zip 标头中“制作的版本”的值?

我正在努力计算in adm -zip的正确值version made by

在我看来,Zip Spec不清楚如何找到二进制或 int 值以将选项(例如)设置为中央标头Option 3 Unix中依赖的 2 字节。

来自 adm-zip 的用于标头设置的文档根本没有帮助。

从 zip 规范 (4.4.2) 映射:

4.4.2.2 目前的映射是:

我通过将entry.header.made属性设置为 找到了一种可能的解决方案788

(entry.header as any).made = 788;

(只有通过导入另一个 zip util 创建的 zip 才能找到此值。)

谁能解释如何788从所需的选项 3 开始计算该值?

或者如何为另一个选项计算这个值,例如10 - Windows NTFS

0 投票
0 回答
36 浏览

node.js - nodejs如何将文件夹压缩成zip文件发送给vue客户端

通常“res.status(200).send(data)”我返回发送数据

我使用了 adm-zip 和 achiver。

节点

}

Vue.js

“ReportData.workSpace”是本地存储的文件夹。

zip文件将被下载,但它说它在打开时已损坏

我被这个问题困住了

你能帮助我吗?

0 投票
1 回答
445 浏览

node.js - 节点从 URL 读取大 zip 文件,然后解压缩

我正在使用 request.get(url) 从 URL 读取一个大的 zip 文件(500MB)。文件包含一个非常大的 CSV 文件。我正在阅读响应并使用 fs.createWriteStream(zipFile) 将文件流写入 zip 文件。在 fs.createWriteStream 的关闭事件中,我尝试使用 adm-zip 文件,我得到“错误无效或不支持的 zip 格式。找不到结束头”,而使用 Unzipper npm 包,我得到“无效的签名解压缩”。下面是代码

带解压器