Μορφή αρχείου ZIP

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

Πληροφορίες για το αρχείο Zip

Το ZIP είναι μια μορφή αρχειοθέτησης που μπορεί να χωρέσει ένα ή περισσότερα συμπιεσμένα αρχεία και φακέλους χωρίς απώλειες, με ή χωρίς κρυπτογράφηση. Το ZIP είναι η πιο δημοφιλής μορφή που είναι γνωστή εδώ και περισσότερα από τριάντα χρόνια και υποστηρίζεται σχεδόν σε κάθε σύγχρονο λειτουργικό σύστημα. Αυτή η μορφή επεκτάθηκε επίσης σε ορισμένες άλλες μορφές όπως το JAR και το OpenDocument.

Zip-archive Μορφή αρχείου Πληροφορίες ιστορικού

Η πρώτη προδιαγραφή μορφής του ZIP δημοσιεύτηκε το 1989. Οι συντάκτες της ιδέας ZIP ήταν ο Phil Katz και ο Gary Conway. Ήταν μια άμεση επιτυχία λόγω της αποτελεσματικότητάς του στη μείωση των μεγεθών αρχείων, καθιστώντας ευκολότερη την αποθήκευση και τη μετάδοση αρχείων μέσω αργών συνδέσεων στο Διαδίκτυο και τις περιορισμένες δυνατότητες αποθήκευσης εκείνης της εποχής. Από το 1993 υποστηρίζει την πιο κοινή μέθοδο συμπίεσης Deflate. Η ισχυρή κρυπτογράφηση AES εισήχθη το 2003. Παρά το γεγονός ότι είναι αρκετά παλιό, το πρότυπο δεν έχει γίνει απολιθωμένο - αναπτύσσεται ενεργά στις μέρες μας. Έτσι το 2020 επεκτάθηκε με μεθόδους συμπίεσης Zstandard, MP3 και XZ.

Δομή του αρχείου ZIP

Τα αρχεία ZIP έχουν σχεδιαστεί σε αυτήν την ιεραρχική δομή για την αποτελεσματική αποθήκευση και οργάνωση συμπιεσμένων αρχείων, επιτρέποντας ταυτόχρονα την εύκολη πρόσβαση σε μεμονωμένα αρχεία εντός του αρχείου. Κάθε καταχώρηση του αρχείου συμπιέζεται χωριστά, μπορεί να είναι ακόμη και με τη δική της μέθοδο συμπίεσης και κρυπτογράφησης. Η καταχώρηση μέσα στο αρχείο έχει προηγούμενη κεφαλίδα με μεταδεδομένα αρχικού αρχείου. Ο πίνακας περιεχομένου βρίσκεται στο τέλος του αρχείου. Αυτή η προσέγγιση επιτρέπει τη σύνταξη αρχείου αυτοεξαγωγής (SFX), το οποίο παραμένει επίσης έγκυρο αρχείο ZIP λόγω του ότι το εκτελέσιμο μέρος βρίσκεται στην αρχή του αρχείου SFX.

Μέθοδοι συμπίεσης φερμουάρ

Το σύγχρονο ZIP επιτρέπει τη συμπίεση δεδομένων με αλγόριθμους Deflate, Deflate64™, BZIP2, LZMA, XZ, PPMd, Zstandard. Το αρχείο μπορεί επίσης να αποθηκευτεί χωρίς συμπίεση. Το πιο συνηθισμένο είναι το Deflate, το οποίο είναι προεπιλεγμένο σε οποιοδήποτε εργαλείο αρχειοθέτησης. Υπάρχουν επίσης αλγόριθμοι για συμπίεση χωρίς απώλειες συγκεκριμένων αρχείων: MP3, JPEG, WAV. Το Aspose.ZIP υποστηρίζει πλήρως τις μεθόδους Deflate, Deflate64™, Bzip2, LZMA, XZ, PPMd και Zstandard. Επιτρέπει την εξαγωγή συμπιεσμένου ήχου WavPack.

Υποστηριζόμενες λειτουργίες Zip Archive

Χρησιμοποιώντας το Aspose.ZIP, μπορείτε να χειριστείτε το αρχείο ZIP με διάφορους τρόπους. Μπορείτε να συνθέσετε αρχείο, να προσθέσετε καταχωρήσεις στο υπάρχον αρχείο χωρίς επανασυσκευασία, να διαγράψετε εγγραφές από το υπάρχον αρχείο χωρίς να επηρεάσετε το υπόλοιπο αρχείο και να εξαγάγετε αυθαίρετη καταχώρηση ή ολόκληρο το αρχείο. Μπορείτε να κρυπτογραφήσετε και να αποκρυπτογραφήσετε κάθε καταχώρηση ξεχωριστά είτε με παλαιού τύπου είτε με σύγχρονο αλγόριθμο κρυπτογράφησης AES. Το Aspose.ZIP είναι σε θέση να δημιουργήσει αρχεία ZIP με αυτοεξαγωγή και πολλαπλούς τόμους.

Zip-αρχείο - Εσωτερική δομή

Όπως ειπώθηκε, ο κεντρικός κατάλογος, ο οποίος είναι ο πίνακας περιεχομένων, βρίσκεται στο τέλος του αρχείου ZIP. Αυτός ο κατάλογος λειτουργεί ως ευρετήριο, παραθέτοντας όλες τις καταχωρήσεις αρχείων στο αρχείο μαζί με τις θέσεις τους μέσα στο αρχείο. Οι κεφαλίδες εισαγωγής μπορούν να περιλαμβάνουν χρόνους δημιουργίας και τροποποίησης, χαρακτηριστικά συστήματος αρχείων, όνομα αρχείου και σχόλια. Η κεφαλίδα καταχώρισης μπορεί να επεκταθεί με προσαρμοσμένο επιπλέον πεδίο για την αποθήκευση προσαρμοσμένων μεταδεδομένων. Είναι δυνατό να συμπεριληφθούν κεφαλίδες Zip64 για την υποστήριξη περισσότερων από 65.535 καταχωρήσεων ανά αρχείο. Το μέγιστο μέγεθος αρχείου ZIP με επέκταση Zip64 είναι 264−1 byte. Το αρχείο ZIP μπορεί να χωριστεί σε πολλά αρχεία. Σε αυτή την περίπτωση, ο κεντρικός κατάλογος αποθηκεύει μετατοπίσεις κάθε τόμου για γρήγορη πρόσβαση σε συγκεκριμένη καταχώρηση.

Zip-αρχείο - Εσωτερική δομή

Δημοτικότητα του Zip Archive και υποστήριξης

Το ZIP είναι η νούμερο ένα μορφή αρχείου. Τα αρχεία ZIP είναι τόσο ευρέως αναγνωρισμένα και υποστηρίζονται που διάφορες εφαρμογές λογισμικού, συμπεριλαμβανομένων δημοφιλών διαχειριστών αρχείων όπως η Εξερεύνηση των Windows, το macOS Finder και εργαλεία ανοιχτού κώδικα όπως το 7-Zip και το WinRAR , παρέχουν εγγενή υποστήριξη για δημιουργία και εξαγωγή αρχείων ZIP. Αυτή η υποστήριξη επεκτείνεται σε υπηρεσίες αποθήκευσης cloud, προγράμματα-πελάτες email, ακόμη και κινητές συσκευές.

Παραδείγματα χρήσης αρχείων Zip

Τα αρχεία zip είναι μια πανταχού παρούσα μορφή αρχείου για τη συμπίεση και την οργάνωση δεδομένων, καθιστώντας τα απαραίτητα σε διάφορες εφαρμογές λογισμικού. Οι λειτουργίες με αρχεία μέσω .NET δίνουν τη δυνατότητα στους προγραμματιστές να εργάζονται με αρχεία Zip χωρίς κόπο. Στα παραδείγματα κώδικα που ακολουθούν, θα εμβαθύνουμε στις δυνατότητες των λειτουργιών με το Zip archive, δείχνοντας πώς μπορείτε να δημιουργήσετε νέα Zip αρχεία και να εξάγετε αποτελεσματικά αρχεία από τα υπάρχοντα. Αυτά τα παραδείγματα θα σας βοηθήσουν να αξιοποιήσετε τις δυνατότητες αυτής της βιβλιοθήκης για την απρόσκοπτη διαχείριση των αρχείων Zip στα έργα σας .NET

Create Zip file via .NET

Compose ZIP archive with two entries added by their paths.:

using (var archive = new Archive())
{
    archive.CreateEntry("entry_name1.dat", "input_file1.dat");
    archive.CreateEntry("entry_name2.dat", "input_file2.dat");
    archive.Save("result_archive.zip");
}

How to UnZIP files in C#

Steps: Unzip File to Folder in C#

  • Create an instance of Archive class based on your zip file.
  • Unzip the zip file using Archive.ExtractToDirectory method to your folder.
using (var archive = new Archive("input_archive.zip"))
{
    archive.ExtractToDirectory("outputDirectory");
}

Compressing Single File ZIP File

Steps: Compressing Single File in C#

  • Create a file stream with the desired name of your output zip file.
  • Create file stream of the data file to be compressed and encrypted.
  • Create an instance of Archive class and pass to it an instance of ArchiveEntrySettings class with AesEcryptionSettings instance, specifying the password.
  • Add data file created in step 2 using Archive.CreateEntry method.
  • Compress and encrypt the data file using Archive.Save method and pass it the file stream created in step 1.
using (var zipFile = File.Open("EncrypedWithAES256.zip", FileMode.Create))
{
    using (var source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
     {
           using (var archive = new Archive(new ArchiveEntrySettings(null, new  AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
           {
                  archive.CreateEntry("alice29.txt", source);
                  archive.Save(zipFile);
           }
      }
}

Deleting entries from existing archive

You do not have to repack whole archive when you only need to remove one entry from it. Steps:

  • Create a file stream with the desired name of your output zip file.
  • Create an instance of Archive class based on your zip file.
  • Delete the first file - the entry with zero index – from the archive.
  • Save the archive without excluded entry to output stream from step 1
using (FileStream outputZipFile = File.Open(withoutAnEntry.zip, FileMode.Create))
{
    using (Archive archive = new Archive(archive.zip))
    {
        archive.DeleteEntry(archive.Entries[0]);
        archive.Save(outputZipFile);
    }
}

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

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Πρόσθετες πληροφορίες σχετικά με τα αρχεία Zip

Ο κόσμος ρωτούσε

1. Ποια μέθοδο κρυπτογράφησης να επιλέξω;

Η μορφή ZIP υποστηρίζει παραδοσιακές (ZipCrypto) και σύγχρονες τεχνικές κρυπτογράφησης AES. Το πρώτο είναι πολύ πιο αδύναμο από το δεύτερο και εύκολα σπάσιμο. Το ZipCrypto υποστηρίζεται από το Aspose.ZIP για παλαιού τύπου. Χρησιμοποιήστε μόνο κρυπτογράφηση AES256 κατά τη σύνταξη ενός αρχείου.

2. Υπάρχει τρόπος να εκμεταλλευτώ τους επεξεργαστές πολλαπλών πυρήνων για συμπίεση;

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

3. Μπορεί ο ιός να μολύνει το zip;

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