问题标签 [zip4j]

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 投票
1 回答
362 浏览

java - 将受保护的存档解压缩到字节数组

我得到了一个受密码保护的 zip 存档,

我需要编写一段代码,将存档解密为 abyte []而无需将中间结果保存到文件系统,

到目前为止,我发现标准的 java JDK 不允许执行这样的操作,

还有一个库Zip4j,但它似乎不允许直接解密文件,byte[]而是将结果写入文件系统,

如果真的真的很感激任何帮助,

谢谢

0 投票
2 回答
938 浏览

java - 以编程方式替换 JAR 中的 MANIFEST.MF 文件

我想MANIFEST.MF在创建后修改JAR排除某些Class-Path条目。为此,我决定使用zip4j. 提取似乎工作正常,但要将MANIFEST.MF文件放回JAR,我使用以下代码:

但是,此代码无法按预期工作:父目录总是最终被命名NF而不是完整的META-INF. 似乎起始字符被切断了。这可能是什么原因,或者是否有另一种有意义的可能性来替换JARs 内的文件(本质上只是ZIPs)?

maven依赖:

此外,我尝试使用此处jar描述的实用程序,但是在调用命令时,内部的命令被删除而不是被替换。通过工作使用该实用程序但会损坏文件,因此它不再可运行:jar uf MyJAR.jar META-INF/MANIFEST.MFMANIFEST.MFJARzipzip -ur MyJAR.jar "META-INF/MANIFEST.MF"JAR

0 投票
1 回答
132 浏览

java - 无法在java中解压缩合并的zip文件

我的数据量很大,需要上传到github。所以我决定使用拆分的 zip 文件并让程序合并它们然后解压缩它们。

合并看起来很棒,但后来我尝试像这样解压缩:

此代码适用于手动压缩的数据,但在合并数据时失败。

试图手动解压缩合并的文件,它崩溃了,给我一个错误。我在 Maven 中使用最新版本:

我得到的错误是:

什么都找不到

0 投票
0 回答
221 浏览

java - 如何在没有真实文件的情况下压缩文件下载

我做zip下载。我的代码工作正常。

这是我的代码。

但我不想将文件留在服务器上。
我所做的是:

但是,会发生错误:

0 投票
0 回答
620 浏览

java - 在 java 中创建受密码保护的 zip 文件,在解压过程中我得到文件不支持的问题

我可以创建一个 zip 文件,我的要求是通过密码保护它。为此,我使用的是 zip4j 库。请单击更多链接以供参考。[https://github.com/srikanth-lingala/zip4j]

下面是代码。

}

}

}

}

当我使用 ZipFile 类进行密码保护时,我无法提取 zip 文件,在提取过程中它从 .zip 更改为 String 格式。如果我使用 ZipOutputStream 类进行密码保护,则在提取过程中文件格式没有变化,但它没有按预期询问密码。任何帮助表示赞赏,在此先感谢。

0 投票
1 回答
301 浏览

java - 如何使用 Zip4J API 添加具有指定文件权限的流式数据

Zip4J API 提供了一种方便的方法来将流式条目添加到 zip 文件:

似乎没有在 ZipFile 或 ZipParameter 类的实例上指定“文件权限”或“默认文件权限”的方法。

默认行为是将条目上的所有文件属性设置为 false,这在 unix 系统上意味着没有所有者、组和其他的读取、写入或执行权限。这很不方便。我想至少为所有者设置读取权限标志。

  1. 是否有一种方法可以设置“流式”zip 文件条目的文件权限(即使用 ZipFile.addStream 方法添加的文件权限?

  2. 如果不是(1)是否有办法在创建条目后添加文件权限(实际上存储在磁盘上的基础 zip 文件中 - 请参阅有关此警告的其他信息)?

附加信息

请注意,一旦将流条目添加到 Zip 文件,就可以从其标题数据中获取和设置文件属性信息,这可以使用 ZipFile.getHeader(entryName) 方法获得。但是,使用此 API 设置文件权限值不会直接影响基础 zip 文件。此外,似乎无法将更新的标头信息保存到磁盘(尽管我可能会遗漏一些东西)。

作为参考,获取和设置文件属性的方法是:

深入研究 zip4j 代码,表明这些文件属性存储在一个 4 字节数组中,其中字节 2 和 3(从字节 0 开始)中的位表示 unix 文件权限位。这可以在 net.lingala.zip4j.util.FileUtils 类的应用 posix 文件属性中找到。

潜在的解决方法(我试图避免)

我可以看到的一种解决方法是将流中的数据写入临时文件,确保该文件具有所需的权限,将文件添加到 zip 存档中,然后删除临时文件(因为它已达到其目的)。这种方法假设磁盘文件权限得到正确维护,在“posix 系统”上似乎就是这种情况。

我宁愿不使用这种方法。

0 投票
1 回答
683 浏览

java - 如何使用 zip4j 在 zip 密码保护的存档中隐藏带有密码的文件名

我想用密码保护档案压缩文件。我有这样的小鬼:

这段代码有效。存档用密码压缩。唯一的问题是任何不知道密码的人都可以打开生成的 zip 文件并查看里面有什么文件。当您单击文件时,它将需要您提供密码。但我想用密码隐藏 zip 中的文件。这可以使用任何 zip 程序来实现。我只是不知道该怎么做zip4j。我检查了文档: http ://www.lingala.net/zip4j.html https://github.com/srikanth-lingala/zip4j 但没有找到答案。

请帮忙

0 投票
1 回答
110 浏览

java - 如何在不写入磁盘的情况下解析 zip 中的文件 - java

我有一个受密码保护的 zip 文件 [以 base64 编码数据和 zip 文件名称的形式],其中包含一个 xml。我希望在不向磁盘写入任何内容的情况下解析该 xml。在 Zip4j 中执行此操作的方法是什么?以下是我尝试过的。

这让我java.io.FileNotFoundException: File 'xyz.xml' does not exist大吃一惊FileUtils.openInputStream(extractedFile)。你能建议我这样做的正确方法吗?

0 投票
1 回答
91 浏览

java - 在 Windows 中使用 zip4j 提取 zipfile 时可以跳过符号链接吗?

我正在使用zip4j库在 Windows 下提取包含符号链接的 zip 文件。

我的代码如下:

(最小的工作示例可在https://github.com/maikelsteneker/zip4j-symlink获得)

此 zip 文件包含一个符号链接。创建此类符号链接需要 Windows 中的管理员权限。因此,出现以下异常:

有没有办法跳过这些符号链接以避免这种异常?理想情况下,我只想在这些权限不可用时跳过它们(某些用户可能具有管理员权限或以其他方式配置他们的系统以允许创建符号链接)。我正在寻找一个优雅的解决方案;我不想在图书馆附近工作。

0 投票
2 回答
318 浏览

java - The method extractAll(String) is undefined for the type ZipFile with zip4j

I'm trying to make a program which unzips then parses the xml file in xml.zip. Adding the dependency for zip4j, this is my pom.xml

My code for the parser :

The program still write an error : The method extractAll(String) is undefined for the type ZipFile

any help is really appreciated