說我有一個.zip文件叫Bundles.zip並直接在Bundles.zip,有幾個文件和一些文件夾。這是該.zip樣子:java - 如何解壓zip文件的特定目錄中的所有文件?
現在,我想提取一切從捆綁文件夾。我的程序已經知道它需要提取文件的文件夾的名稱,在這種情況下,軟件包。
的zip內的捆綁文件夾可以有文件,子文件夾,文件中的子文件夾,任何事情,就像這樣:
而我只是需要提取一切從捆綁文件夾複製到輸出目錄。
我該如何在Java中完成這項工作?我找到了解壓縮所有文件和文件夾的答案,但我只需要提取壓縮文件中的特定文件夾,而不是一切。到目前爲止
工作代碼:
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是一樣的東西 「的Island.zip」。在拉鍊內有一個名爲The Island的文件夾。我需要在zip文件中找到與zip文件名稱相匹配的文件夾,並提取其中的所有內容。
你的工作代碼在哪裏?java zip庫允許你迭代一個zip文件的內容就好了 – kolossus
@kolossus - 添加我的工作代碼到目前爲止找到要提取的文件夾的名稱。現在的問題是,我如何提取名爲folderToExtract的文件夾? – user3149729