簡體   English   中英

Java解壓縮.zip文件,不包含子文件夾

[英]Java unzip .zip file without subfolder

我正在使用zip4j進行解壓縮,但是現在我需要在沒有原始文件夾結構的情況下解壓縮.zip文件。

e.g.
desktop/abc.zip/
               /a
               /b/
                 /x.txt
                 /y.txt
                 /z.txt

我想將abc.zip中的所有文件直接提取到桌面。

e.g.
desktop/x.txt
       /y.txt
       /z.txt

由於.zip文件將受密碼保護,因此java.util.zip庫無法執行此操作。 我根據自己的要求做了一些研究,但徒勞無功。 我也嘗試查看/重寫zip4j的源代碼,但這似乎超出了我的能力范圍。

我會錯過zip4j的任何設置嗎,它可以幫助我輕松實現它,還是有其他適合此要求的Java庫?

以下是我程序的一部分的源代碼:

public class FileDecompressor {

    void decompressFiles(String sourceFile, String fileDestination) {
        decompressFiles(sourceFile, fileDestination, "");
    }

    void decompressFiles(String sourceFile, String fileDestination, String zipPassword) {
        try {
            ZipFile zipFile = new ZipFile(sourceFile);
            if (zipFile.isEncrypted()) {
                zipFile.setPassword(zipPassword);
            }
            zipFile.extractAll(fileDestination);
        } catch (ZipException e) {
            e.printStackTrace();
        }
    }
}

它不是“直接”的,但是您可以解壓縮到臨時目錄並將內容移動到桌面。

一個優點是,如果在同一驅動器上使用移動,則整個目錄將一次顯示在桌面上,而不是部分顯示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM