ภาพรวม

ไฟล์เก็บถาวรที่ประกอบด้วยรายการมีวิธี createEntries สำหรับการบีบอัดทั้งโฟลเดอร์ วิธีการดังกล่าวเคารพโครงสร้างไดเร็กทอรีและเขียนซ้ำสำหรับโฟลเดอร์ย่อยทั้งหมด นอกจากนี้คุณยังสามารถเพิ่มรายการไฟล์เดียวลงในโฟลเดอร์ย่อยใดก็ได้ในไฟล์เก็บถาวร

วิธีซิปโฟลเดอร์

หากคุณต้องการสร้างไฟล์ ZIP จากทั้งโฟลเดอร์ในขณะที่ยังคงรักษาโครงสร้างไว้ คุณสามารถใช้ Aspose.Zip API สำหรับ Java และโค้ดต่อไปนี้ โครงสร้าง try-with-resources จะปิดทรัพยากร Archive โดยอัตโนมัติหลังจากเรียกใช้โค้ดทั้งหมดแล้ว ไม่ว่าไฟล์ทั้งหมดจะปิดอย่างถูกต้องหรือไม่ก็ตาม เส้นทางที่ระบุในวัตถุ File corpus ระบุโฟลเดอร์ที่จะถูกบีบอัด ด้วย createEntries แต่ละองค์ประกอบของไฟล์เก็บถาวรจะถูกเพิ่มแยกกัน ดังนั้นจึงคงโครงสร้างดั้งเดิมไว้ ซึ่งจัดเก็บไว้ในไฟล์ชื่อ archive.zip สิ่งสำคัญคือต้องทราบว่าโค้ดไม่ได้ตรวจสอบการมีอยู่ของโฟลเดอร์ "D:\Data" หรือการมีอยู่ของไฟล์ในนั้น หากไม่มีไดเร็กทอรีหรือว่างเปล่า โค้ดจะไม่สร้างไฟล์เก็บถาวรใดๆ
CreateEntries มีพารามิเตอร์ตัวเลือกตัวที่สอง includeRootDirectory ซึ่ง บ่งชี้ว่าจำเป็นต้องรวมไดเร็กทอรีรากไว้ในไฟล์เก็บถาวรหรือไม่ ค่าเริ่มต้นเป็นจริง ดังนั้นในตัวอย่างข้างต้น รายการเก็บถาวรทั้งหมดจะอยู่ภายในโฟลเดอร์ "ข้อมูล" หากคุณต้องการเพิ่มเฉพาะเนื้อหาไดเร็กทอรีให้ส่งค่า 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" โดยสรุป รหัสนี้จะสร้างไฟล์ ZIP ชื่อ "archive.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 สำหรับ Java 24.4

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

วิธีบีบอัดโฟลเดอร์ใน TAR ในขณะที่ยังคงโครงสร้างไว้

รหัสสร้างไฟล์เก็บถาวร TAR สำหรับไดเร็กทอรีที่ระบุ ใช้คลาส TarArchive จาก Java Archive API เพื่อให้บรรลุเป้าหมายนี้ เมธอด createEntries เพิ่มไฟล์และโฟลเดอร์ทั้งหมดจากไดเร็กทอรีไปยังไฟล์เก็บถาวร รักษาโครงสร้างไดเร็กทอรี สุดท้ายนี้ วิธีการบันทึกจะเขียนเนื้อหาของไฟล์เก็บถาวรลงในไฟล์ "archive.tar"
ตัวอย่าง:

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

รหัสที่ให้มาจะสร้างไฟล์เก็บถาวร TAR ชื่อ "archive.tar" ซึ่งประกอบด้วยสองรายการ Directory Archive - เพิ่มไฟล์และโฟลเดอร์ทั้งหมดจากไดเร็กทอรี "D:\Data" ไปยังไฟล์เก็บถาวร โดยคงโครงสร้างไดเร็กทอรีไว้ วิธีนี้จะเก็บถาวรเนื้อหาทั้งหมดของไดเร็กทอรีที่ระบุอย่างมีประสิทธิภาพ และรายการไฟล์เดียว - เพิ่มไฟล์เฉพาะชื่อ "data.bin" จากโฟลเดอร์ย่อย "inner" ไปยังไฟล์เก็บถาวร ซึ่งช่วยให้สามารถรวมไฟล์ใดไฟล์หนึ่งได้โดยไม่ต้องเก็บถาวรโครงสร้างไดเร็กทอรีทั้งหมด โดยสรุป โค้ดนี้สร้างไฟล์เก็บถาวร TAR ที่รวมทั้งการเก็บถาวรระดับไดเร็กทอรีและการรวมไฟล์แต่ละไฟล์
ตัวอย่างที่ 2 – รวมไดเร็กทอรีการเก็บถาวรและ ไฟล์เดียว

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

Aspose.ZIP อื่นๆ ที่รองรับสำหรับคุณสมบัติ Java API

ด้วยไลบรารี Aspose.ZIP ใน Java คุณสามารถจัดการงานต่างๆ ที่เกี่ยวข้องกับเอกสารไฟล์ ZIP ได้อย่างราบรื่น ไม่ว่าคุณจะต้องการแปลงรูปแบบ รวมไฟล์ แก้ไขเนื้อหา หรือแยกข้อมูล Aspose.ZIP มีฟังก์ชันการทำงานที่ครอบคลุมเพื่อปรับปรุงขั้นตอนการทำงานของคุณและปรับปรุงประสิทธิภาพการทำงาน

  

Support and Learning Resources

  
  

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