Επισκόπηση

Τα αρχεία που αποτελούνται από καταχωρήσεις έχουν τη μέθοδο createEntries για τη συμπίεση ολόκληρου του φακέλου. Τέτοιες μέθοδοι σέβονται τη δομή καταλόγου και συνθέτουν περιοδικά για όλους τους υποφακέλους. Επίσης, μπορείτε να προσθέσετε μια μεμονωμένη καταχώρηση αρχείου σε αυθαίρετο υποφάκελο οπουδήποτε στο αρχείο.

Πώς να δημιουργήσετε ένα αρχείο ZIP

Η μέθοδος createEntry χρησιμοποιείται για την προσθήκη κάθε αρχείου στο συμπιεσμένο αρχείο. Σε αυτά τα παραδείγματα, δεν καθορίζουμε ρυθμίσεις συμπίεσης, επομένως θα εφαρμοστούν οι προεπιλεγμένες ρυθμίσεις για την επιλεγμένη μορφή.

    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");
    }

Αυτός ο κώδικας δημιουργεί ένα αρχείο ZIP με το όνομα "archive.zip" που περιέχει δύο αρχεία: "data1.bin" και "data2.bin". Ακολουθεί μια ανάλυση του πώς λειτουργεί:

  • Αυτόματη διαχείριση πόρων: Ο κώδικας χρησιμοποιεί ένα μπλοκ try-with-resources για να διασφαλίσει τη σωστή διαχείριση των πόρων. Αυτό το μπλοκ κλείνει αυτόματα το αντικείμενο αρχειοθέτησης μετά την ολοκλήρωση.
  • Προσθήκη αρχείων στο αρχείο: Μέσα στο μπλοκ, ο κώδικας χρησιμοποιεί τη μέθοδο createEntry δύο φορές για να προσθέσει αρχεία στο αρχείο:
    - Η πρώτη καταχώρηση ονομάζεται "first.bin" και περιέχει τα περιεχόμενα του αρχείου "data1.bin".
    - Η δεύτερη καταχώρηση ονομάζεται "second.bin" και περιέχει τα περιεχόμενα του αρχείου "data2.bin".
  • Αποθήκευση του αρχείου: Τέλος, η μέθοδος αποθήκευσης καλείται το αντικείμενο αρχειοθέτησης για αποθήκευση του νέου αρχείου ZIP με τις καθορισμένες καταχωρήσεις στο "archive.zip".

Πώς να προσθέσετε αρχεία στο αρχείο 7zip

Για να προσθέσουμε πολλά συνημμένα σε ένα μόνο αρχείο 7zip, χρησιμοποιούμε την κλάση SevenZipArchive μαζί με το createEntry και τις μεθόδους αποθήκευσης με παρόμοιο τρόπο.

    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");
    }

Ο παρακάτω κώδικας εκτελεί τις ίδιες ενέργειες με τον προηγούμενο, αλλά για τη μορφή 7-ZIP .

TAR make αρχείο

Η επέκταση των αρχείων συχνά περιλαμβάνει εξαγωγή, προσθήκη νέων αρχείων και επανασυμπίεση, η οποία είναι μια διαδικασία που απαιτεί πόρους. Το Aspose.ZIP προσφέρει μια πιο έξυπνη λύση στην Java. Απλώς ανοίξτε το αρχείο για εξαγωγή και προσθέστε απευθείας νέες καταχωρήσεις, αποφεύγοντας την περιττή επανασυσκευασία. Αυτή η αποτελεσματική προσέγγιση λειτουργεί για τη μορφή αρχείου 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");
    }

Αυτή η εφαρμογή μοιράζεται τη λειτουργικότητα της προηγούμενης, αλλά είναι προσαρμοσμένη για αρχεία με την επέκταση TAR .

Πώς να δημιουργήσετε το αρχείο GZ

Μορφές μόνο συμπίεσης χωρίς καταχωρήσεις. Αυτές οι μορφές συμπίεσης, συμπεριλαμβανομένων των GZIP, LZ, BZIP2, XZ και Z, δεν υποστηρίζουν καταχωρήσεις αρχείων. Μπορούν να συμπιέσουν μόνο ένα αρχείο προέλευσης κάθε φορά.

    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());
    }

Δημιουργία TAR GZ

Το Aspose.ZIP προσφέρει έναν βολικό τρόπο συνδυασμού μορφών μόνο για αρχειοθέτηση και μόνο συμπίεση χρησιμοποιώντας μία μόνο μέθοδο. Ακολουθεί ένα παράδειγμα αυτής της λειτουργικότητας με τον συνδυασμό TAR.GZ. Αυτή η μέθοδος χρησιμοποιεί τη μέθοδο saveGzipped .

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

Δημιουργήστε το TARLZ

Αρχικά, δημιουργούμε ένα αντικείμενο FileInputStream, συνδεδεμένο με το αρχείο που πρόκειται να αρχειοθετηθεί. Στη συνέχεια, δημιουργούμε αντικείμενο LzipArchive, ορίζουμε την πηγή στο αντικείμενο FileInputStream που δημιουργήθηκε προηγουμένως και αποθηκεύουμε το αρχείο.

    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());
    }

Δημιουργία αρχείου TAR BZ2

Το Aspose.ZIP προσφέρει παρόμοιες μεθόδους για τη συμπίεση αρχείων με μορφές LZIP, XZ, ZStandard και Z. Ωστόσο, απαιτείται διαφορετική προσέγγιση για το 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");
        }
    }

Αυτή η κατασκευή κώδικα συνδυάζει τη χρήση δύο διαφορετικών μορφών αρχειοθέτησης, δηλαδή του TAR και του Bzip2. Το κύριο χαρακτηριστικό είναι ότι ένα αρχείο TAR δημιουργείται πρώτα χρησιμοποιώντας την κλάση TarArchive προσθέτοντας πολλά αρχεία σε αυτό χρησιμοποιώντας τη μέθοδο createEntry και, στη συνέχεια, αυτό το αρχείο συμπιέζεται σε μορφή Bzip2 χρησιμοποιώντας την κλάση Bzip2Archive .

Άλλες υποστηριζόμενες δυνατότητες 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: