Επισκόπηση

Μπορούμε να χωρίσουμε τα εργαλεία αρχειοθέτησης και συμπίεσης σε τρεις κύριες κατηγορίες:
- Αρχεία με πολλά αρχεία συνήθως με συμπίεση – ZIP, 7Z, XAR;
- Αποθήκευση πολλών αρχείων χωρίς συμπίεση – TAR, CPIO;
- Συμπίεση -μόνο μορφές χωρίς καταχωρήσεις – GZ, LZ, BZIP2, XZ, ZStandard, Z.
Τα αρχεία από τη δεύτερη κατηγορία συχνά συνδυάζονται με μορφές μόνο συμπίεσης. Είναι δημοφιλείς σε συστήματα που μοιάζουν με Unix με τις ξεχωριστές λειτουργίες τους – μία για αρχειοθέτηση, άλλη για συμπίεση. Ακολουθούν επεξήγηση και δείγματα για κάθε είδος αρχείου.

Συμπιεσμένα αρχεία που περιέχουν πολλά αρχεία

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

Πώς να κάνετε ZIP πολλά αρχεία

Η προεπιλογή είναι ο αλγόριθμος Deflate

Zip compression with Deflate algoritm

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

Πώς να δημιουργήσετε αρχεία 7-ZIP πολλών αρχείων

Η προεπιλογή για το 7-zip είναι ο αλγόριθμος LZMA

7-Zip with LZMA algorithm

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

Αρχείο XAR με πολλά αρχεία

Η προεπιλογή είναι ο αλγόριθμος ZLib

XAR with ZLib algorithm

    using (XarArchive archive = new XarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        // Add as many entries as you need 	
        archive.Save("archive.xar");	
    }

Αποθήκευση πολλών αρχείων χωρίς συμπίεση

Η προσέγγιση για μορφές TAR και CPIO είναι παρόμοια και βρίσκεται στην ήδη γνωστή μέθοδο CreateEntry .

Αρχείο TAR χωρίς συμπίεση

TAR storing files without compression

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

Αρχείο CPIO χωρίς συμπίεση

CPIO storing files without compression

    using (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.cpio");
    }

Μορφές μόνο συμπίεσης χωρίς καταχωρήσεις

Τέτοια αρχεία όπως τα GZIP, LZ, BZIP2, XZ, Z δεν υποστηρίζουν καταχωρήσεις και μπορούν να συμπιέσουν μόνο μία πηγή. Δείτε δείγματα με τέτοια συμπίεση.

Αρχείο GZ Μορφές μόνο συμπίεσης χωρίς καταχωρήσεις

GZIP with compress only single source

using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
    using (GzipArchive archive = new GzipArchive())
    {
        archive.SetSource(source);
        archive.Save("archive.gz");
    }
}

Αρχείο LZ Μορφές μόνο συμπίεσης χωρίς καταχωρήσεις

LZIP with compress only single source

using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
{
    using (GzipArchive archive = new GzipArchive())
    {
        archive.SetSource(source);
        archive.Save("archive.gz");
    }
}

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

Συνδυασμός TAR.GZ

Υπάρχουν παρόμοιες μέθοδοι για μορφές συμπίεσης LZIP, XZ, ZStandard, Z.

TAR.GZ with SaveGzipped method

    using (TarArchive archive = new TarArchive())
    {
        archive.CreateEntry("first.bin",  "data1.bin");
        archive.CreateEntry("second.bin",  "data2.bin");
        archive.SaveGzipped("archive.tar.gz");
    }

TAR.BZ2

Ωστόσο, πρέπει να χρησιμοποιήσουμε μια άλλη προσέγγιση για τη μορφή BZIP2.

BZIP2 with SaveGzipped method

    using (TarArchive tar = new TarArchive())
    {
        tar.CreateEntry("first.bin",  "data1.bin");
        tar.CreateEntry("second.bin",  "data2.bin");	
        using (Bzip2Archive archive = new Bzip2Archive())
        {
            archive.SetSource(tar);
            archive.Save("archive.tar.bz2");
        } 
    }

Άλλες υποστηριζόμενες δυνατότητες Aspose.ZIP για .NET API

Χρησιμοποιήστε τη βιβλιοθήκη Aspose.ZIP C# για μετατροπή, συγχώνευση, επεξεργασία εγγράφων αρχείων zip, εξαγωγή δεδομένων από τα αρχεία και πολλά άλλα!

  

Support and Learning Resources

  
  

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