【发布时间】:2016-09-26 13:05:17
【问题描述】:
伙计们,
我正在使用 zip4j API 在 java 中提取 .zip 文件并能够提取文件
-
我曾经使用压缩完整的目录来制作 zip,它包含文件和嵌套目录,使用
zipFile.addFolder(fileDirectory, parameters);//ZIP目录文件/文件夹
-
使用压缩包解压
ZipFile zipFile = new ZipFile(stringArchievedFile); //Extracts all files to the path specified zipFile.extractAll(stringExtractingFilePath);
问题是解压后,文件应该被解压到我用zipFile.extractAll(path)方法提供的路径,但是又创建了一个目录。如何将文件提取到实际指定的目录
喜欢: 提取路径 C:\提取路径
文件路径 C:\SelectingPath\File1
C:\SelectingPath\File2
C:\SelectingPath\Directory1\File1
C:\SelectingPath\Directory2\File1
我将选择C:\SelectingPath目录进行压缩和
我会选择C:\ExtractionPath目录来解压文件
提取后所有提取的文件都将进入
**C:\ExtractionPath\SelectingPath**
我需要目录中的所有文件
**C:\ExtractionPath** 自己。
请帮我解决这个问题。
提前致谢
【问题讨论】:
-
不要压缩
SelectingPath文件夹。压缩内容。如果你打开 zip 文件,你会看到所有文件的路径都以SelectingPath开头,而你不想这样。 -
你的意思是,我需要将所有文件和目录添加到
ArrayList并将其作为参数传递给 zipFile.addFiles() 方法作为zipFile.addFiles(arrayListFilesFolders, parameters);? -
@Andreas,如果我对文件和目录都使用 ArrayList 并将其作为参数传递给 zipFile.addFile() 方法,我会遇到以下异常并且无法归档完整我选择的目录
ex = (net.lingala.zip4j.exception.ZipException) net.lingala.zip4j.exception.ZipException: One or more elements in the input ArrayList is not of type File