概述

由條目組成的檔案具有用於壓縮整個資料夾的 createEntries 方法。此類方法尊重目錄結構並循環組合所有子資料夾。您也可以將單一檔案條目新增至存檔中任意位置的任意子資料夾。

如何壓縮資料夾

如果您想從整個資料夾建立 ZIP 存檔,同時保留結構,您可以使用 Aspose.Zip API for Java 和以下程式碼。無論所有檔案是否正確關閉,try-with-resources 構造都會在執行所有程式碼後自動關閉 Archive 資源。 File corpus 物件中指定的路徑指示將被壓縮的資料夾。使用 createEntries,存檔的每個元素都會單獨添加,從而保留原始結構,該結構儲存在名為 archive.zip 的檔案中。請務必注意,程式碼不會檢查「D:\Data」資料夾是否存在或其中是否存在檔案。如果該目錄不存在或為空,則程式碼將不會建立任何存檔。
CreateEntries 方法有可選的第二個參數includeRootDirectory 其中指示是否需要將根目錄包含到檔案中。預設值為 true,因此在上面的範例中,所有存檔條目都將位於「Data」資料夾內。如果您只想添加目錄內容,則在此處傳遞 false。
範例 - 從資料夾建立檔案:

    try (Archive archive = new Archive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.zip");
    }

以下程式碼範例建立一個包含兩個檔案的 ZIP 檔案:「image.bmp」和「lyrics.txt」。 fi1 和 fi2 變數代表這些檔案。存檔物件的 createEntry 方法用於將每個檔案新增至指定路徑的檔案:“data\pictures”表示“image.bmp”,“data\text”表示“lyrics.txt”。總之,此程式碼會建立一個名為“archive.zip”的 ZIP 存檔,其中包含兩個資料夾“data\pictures”和“data\text”,每個資料夾包含各自的文件之一。

    try (Archive archive = new Archive()) {
        File fi1 = new File("image.bmp");
        File fi2 = new File("lyrics.txt");
        archive.createEntry("data\\pictures\\photo.bmp", fi1);
        archive.createEntry("data\\text\\song.txt", fi2);
        archive.save("archive.zip");
    }

如何壓縮 7-ZIP 中的資料夾並尊重其結構

以下程式碼示範如何建立 7Z 檔案並將指定目錄中的所有檔案和資料夾新增至其中。它的工作原理與 ZIP 檔案格式的檔案類似。 CreateEntries 是 7Z 檔案的模擬方法。它還具有 includeRootDirectory 參數。 重要:將在 Aspose.ZIP for Java 24.4 中實現

    try (SevenZipArchive archive = new SevenZipArchive()) {
        File corpus = new File("D:\\Data");
        archive.createEntries(corpus);
        archive.save("archive.7z");
    }

如何在保留其結構的同時壓縮 TAR 中的資料夾

此程式碼為指定目錄建立 TAR 存檔。它利用 Java Archive API 中的 TarArchive 類別來實現此目的。 createEntries 方法將目錄中的所有檔案和資料夾新增至檔案中,保留目錄結構。最後,save 方法將存檔的內容寫入檔案「archive.tar」。
樣本:

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.save("archive.tar");
    }

提供的程式碼會建立一個名為「archive.tar」的 TAR 存檔,其中包含兩個條目。目錄存檔 - 它將目錄「D:\Data」中的所有檔案和資料夾新增至檔案中,保留目錄結構。這有效地歸檔了指定目錄的全部內容。單一檔案條目 - 它將「內部」子資料夾中名為「data.bin」的特定檔案新增至檔案。這允許包含特定檔案而無需歸檔整個目錄結構。總之,此程式碼建立了一個結合了目錄級歸檔和單一檔案包含的 TAR 歸檔。
範例 2 – 合併歸檔目錄和 單一檔案

    try (TarArchive archive = new TarArchive()) {
        archive.createEntries("D:\\Data");
        archive.createEntry("inner\\data.bin", "data.bin");
        archive.save("archive.tar");
    }

其他支援的 Aspose.ZIP for Java API 功能

使用Java中的Aspose.ZIP庫,您可以無縫處理與ZIP文件文件相關的各種任務。無論您需要轉換格式、合併文件、編輯內容或提取數據,Aspose.ZIP 都提供全面的功能來簡化您的工作流程並提高工作效率。

  

Support and Learning Resources

  
  

Aspose.Zip offers individual archive processing APIs for other popular development environments, listed below: