ภาพรวม
ไฟล์เก็บถาวรที่ประกอบด้วยรายการมีวิธี 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
- Learning Resources
- Documentation
- Source Code
- API References
- Tutorial Videos
- Product Support
- Free Support
- Paid Support
- Blog
- Release Notes
- Why Aspose.ZIP for Java?
- Customers List
- Success Stories