如何在特定文件夹中添加文件(在 ZIP 中)

cod*_*leb 3 java zip4j

以下代码,如何使用java将文件添加到zip:

String source = "C:/Users/XXXXX/Desktop/Helicopter.zip";
try {
  ZipFile zipFile = new ZipFile(source);

  ZipParameters parameters = new ZipParameters();

  zipFile.addFile(new File("C:/Users/XXXXXX/Desktop/HELLO_HELICOPTER.txt"), parameters);


} catch (net.lingala.zip4j.exception.ZipException e) {
  e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

我如何能够将文件添加到此 zip 存档的特定文件夹中?

cod*_*leb 5

我找到了解决方案:

将要添加的文件放在特定文件夹中,然后使用“addFolder()”方法。

将添加此文件夹中的所有文件,如果同名文件夹已在 zip 中,则不会重新创建您的文件夹,但文件将添加到现有文件夹中

例子:

ZipFile zipFile = new ZipFile(source);
ZipParameters parameters = new ZipParameters();

zipFile.addFolder(new File("C:/Users/XXXXXX/Desktop/HELLO_Folder"), parameters);
Run Code Online (Sandbox Code Playgroud)


Mār*_*nis 5

要在由 net.lingala.zip4j.ZipFile 创建的 zip 文件中维护原始文件夹结构:

ZipFile zipFile = new ZipFile("target/new.zip");
ZipParameters zipParameters = new ZipParameters();
zipParameters.setFileNameInZip("folder/subfolder/file-name.txt");

zipFile.addFile(new File("folder/subfolder/file-name.txt"), zipParameters);
Run Code Online (Sandbox Code Playgroud)

如果未设置 zipParameters.setFileNameInZip,则该文件将添加到 zip 文件的根目录中,而没有原始目录结构。