【发布时间】:2015-06-11 07:01:49
【问题描述】:
假设我有一个名为 Bundles.zip 的 .zip 文件,直接在 Bundles.zip 内,有一些文件和一些文件夹。这是 .zip 的样子:
现在,我想从 Bundles 文件夹中提取 EVERYTHING。我的程序已经知道需要从中提取文件的文件夹的名称,在本例中为 Bundles。
zip 中的 Bundles 文件夹可以有文件、子文件夹、子文件夹中的文件,基本上任何东西,像这样:
我只需要将 Bundles 文件夹中的所有内容提取到输出目录即可。
我如何在 Java 中实现这一点?我找到了提取 zip 中所有文件和文件夹的答案,但我只需要提取 zip 中的特定文件夹,而不是所有内容。
到目前为止的工作代码:
ZipFile zipFile = new ZipFile(mapsDirectory + "mapUpload.tmp");
Enumeration zipEntries = zipFile.entries();
String fname;
String folderToExtract = "";
String originalFileNameNoExtension = originalFileName.replace(".zip", "");
while (zipEntries.hasMoreElements()) {
ZipEntry ze = ((ZipEntry)zipEntries.nextElement());
fname = ze.getName();
if (ze.isDirectory()) //if it is a folder
{
if(originalFileNameNoExtension.contains(fname)) //if this is the folder that I am searching for
{
folderToExtract = fname; //the name of the folder to extract all the files from is now fname
break;
}
}
}
if(folderToExtract == "")
{
printError(out, "Badly packaged Unturned map error: " + e.getMessage());
return;
}
//now, how do i extract everything from the folder named folderToExtract?
对于到目前为止的代码,originalFileName 类似于“The Island.zip”。在 zip 中有一个名为 The Island 的文件夹。我需要在 zip 文件中找到与 zip 文件名称匹配的文件夹,然后提取其中的所有内容。
【问题讨论】:
-
您的工作代码在哪里? java zip 库允许您很好地遍历 zip 文件的内容
-
@kolossus - 到目前为止添加了我的工作代码以查找要提取的文件夹的名称。现在的问题是,如何提取名为 folderToExtract 的文件夹?
标签: java zip extract unzip subdirectory