Tổng quan

Các kho lưu trữ bao gồm các mục có phương thức createEntries để nén toàn bộ thư mục. Các phương thức như vậy tôn trọng cấu trúc thư mục và soạn thảo thường xuyên cho tất cả các thư mục con. Ngoài ra, bạn có thể thêm một mục nhập tệp vào thư mục con tùy ý ở bất kỳ đâu trong kho lưu trữ.

Cách tạo một kho lưu trữ ZIP

Phương thức createEntry được sử dụng để thêm từng tệp vào kho lưu trữ nén. Trong các ví dụ này, chúng tôi không chỉ định bất kỳ cài đặt nén nào, do đó cài đặt mặc định cho định dạng đã chọn sẽ được áp dụng.

    try (Archive archive = new Archive()) {
        archive.createEntry("first.bin", "data1.bin");
        archive.createEntry("second.bin", "data2.bin");
        // Add as many entries as you need 
        archive.save("archive.zip");
    }

Mã này tạo một kho lưu trữ ZIP có tên là "archive.zip" chứa hai tệp: "data1.bin" và "data2.bin". Sau đây là thông tin chi tiết về cách thức hoạt động của nó:

  • Quản lý tài nguyên tự động: Mã sử ​​dụng khối try-with-resources để đảm bảo quản lý tài nguyên hợp lý. Khối này tự động đóng đối tượng lưu trữ sau khi hoàn thành.
  • Thêm tệp vào kho lưu trữ: Bên trong khối, mã sử dụng phương thức createEntry hai lần để thêm tệp vào kho lưu trữ:
    - Mục nhập đầu tiên có tên là "first.bin" và chứa nội dung của tệp "data1.bin".
    - Mục nhập thứ hai có tên là "second.bin" và chứa nội dung của tệp "data2.bin".
  • Lưu kho lưu trữ: Cuối cùng, phương thức lưu được gọi đối tượng lưu trữ để lưu kho lưu trữ ZIP mới được tạo với các mục được chỉ định vào "archive.zip".

Cách thêm file vào kho lưu trữ 7zip

Để thêm nhiều tệp đính kèm vào một kho lưu trữ 7zip, chúng tôi sử dụng lớp SevenZipArchive cùng với các phương thức createEntry và save theo cách tương tự.

    try (SevenZipArchive archive = new SevenZipArchive()) {
        archive.createEntry("first.bin", "data1.bin");
        archive.createEntry("second.bin", "data2.bin");
        // Add as many entries as you need 	
        archive.save("archive.7z");
    }

Đoạn mã sau thực hiện các hành động tương tự như đoạn mã trước, nhưng dành cho định dạng 7-ZIP .

TAR tạo kho lưu trữ

Việc mở rộng kho lưu trữ thường liên quan đến việc giải nén, thêm tệp mới và giải nén, đây là một quá trình tốn nhiều tài nguyên. Aspose.ZIP cung cấp giải pháp thông minh hơn trong Java. Chỉ cần mở kho lưu trữ để giải nén và trực tiếp thêm các mục mới, tránh việc đóng gói lại không cần thiết. Cách tiếp cận hiệu quả này phù hợp với định dạng lưu trữ TAR.

    try (TarArchive archive = new TarArchive()) {
        archive.createEntry("first.bin", "data1.bin");
        archive.createEntry("second.bin", "data2.bin");
        // Add as many entries as you need 
        archive.save("archive.tar");
    }

Ứng dụng này chia sẻ chức năng của ứng dụng trước nhưng được thiết kế riêng cho các kho lưu trữ với tiện ích mở rộng TAR .

Cách tạo tập tin GZ

Định dạng chỉ nén không có mục nhập. Các định dạng nén này, bao gồm GZIP, LZ, BZIP2, XX và Z, không hỗ trợ các mục nhập tệp. Họ chỉ có thể nén một tệp nguồn tại một thời điểm.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (GzipArchive archive = new GzipArchive()) {
            archive.setSource(source);
            archive.save("archive.gz");
        }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }

Tạo TAR GZ

Aspose.ZIP cung cấp một cách thuận tiện để kết hợp các định dạng chỉ lưu trữ và chỉ nén bằng một phương pháp duy nhất. Đây là ví dụ về chức năng này với sự kết hợp TAR.GZ. Phương pháp này sử dụng phương thức saveGzipped .

    try (TarArchive archive = new TarArchive()) {
        archive.createEntry("first.bin", "data1.bin");
        archive.createEntry("second.bin", "data2.bin");
        archive.saveGzipped("archive.tar.gz");
    }

Tạo TARLZ

Đầu tiên chúng ta tạo một đối tượng FileInputStream, kết nối với file cần lưu trữ. Tiếp theo, chúng ta tạo đối tượng LzipArchive, đặt nguồn cho đối tượng FileInputStream đã tạo trước đó và lưu kho lưu trữ.

    try (FileInputStream source = new FileInputStream("alice29.txt")) {
        try (LzipArchive archive = new LzipArchive()) {
            archive.setSource(source);
            archive.save("archive.lz");
        }
    } catch (IOException ex) {
        System.err.println(ex.getMessage());
    }

Tạo tệp TAR BZ2

Aspose.ZIP cung cấp các phương pháp tương tự để nén các kho lưu trữ với các định dạng LZIP, XX, ZStandard và Z. Tuy nhiên, cần có một cách tiếp cận khác đối với BZIP2.

    try (TarArchive tar = new TarArchive()) {
        tar.createEntry("first.bin", "data1.bin");
        tar.createEntry("second.bin", "data2.bin");
        try (Bzip2Archive archive = new Bzip2Archive()) {
            archive.setSource(tar);
            archive.save("archive.tar.bz2");
        }
    }

Cấu trúc mã này kết hợp việc sử dụng hai định dạng lưu trữ khác nhau, đó là TAR và Bzip2. Tính năng chính là kho lưu trữ TAR trước tiên được tạo bằng lớp TarArchive bằng cách thêm một số tệp vào đó bằng phương thức createEntry, sau đó kho lưu trữ này được nén thành định dạng Bzip2 bằng lớp Bzip2Archive .

Aspose.ZIP được hỗ trợ khác cho các tính năng API Java

Với thư viện Aspose.ZIP trong Java, bạn có thể xử lý liền mạch các tác vụ khác nhau liên quan đến tài liệu tệp ZIP. Cho dù bạn cần chuyển đổi định dạng, hợp nhất tệp, chỉnh sửa nội dung hay trích xuất dữ liệu, Aspose.ZIP đều cung cấp chức năng toàn diện để hợp lý hóa quy trình làm việc của bạn và nâng cao năng suất.

  

Support and Learning Resources

  
  

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