Επισκόπηση

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

Πώς να κάνετε συμπίεση ενός φακέλου

Εάν θέλετε να δημιουργήσετε ένα αρχείο ZIP από έναν ολόκληρο φάκελο ενώ διατηρείτε τη δομή, μπορείτε να χρησιμοποιήσετε το Aspose.Zip API για Java και τον ακόλουθο κώδικα. Η κατασκευή try-with-resources κλείνει αυτόματα τον πόρο Archive μετά την εκτέλεση όλου του κώδικα, ανεξάρτητα από το αν όλα τα αρχεία έχουν κλείσει σωστά. Η διαδρομή που καθορίζεται στο αντικείμενο Αρχείο 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" που περιέχει δύο καταχωρήσεις. Αρχείο καταλόγου - Προσθέτει όλα τα αρχεία και τους φακέλους από τον κατάλογο "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 για 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: