Archive.Archive

Archive(ArchiveEntrySettings)

Αρχικοποιεί μια νέα παρουσία τουArchive τάξη με προαιρετικές ρυθμίσεις για τις καταχωρήσεις της.

public Archive(ArchiveEntrySettings newEntrySettings = null)
ΠαράμετροςΤύποςΠεριγραφή
newEntrySettingsArchiveEntrySettingsΡυθμίσεις συμπίεσης και κρυπτογράφησης που χρησιμοποιούνται για τις νέες προσθήκεςArchiveEntry αντικείμενα. Εάν δεν καθορίζεται, θα χρησιμοποιηθεί η πιο κοινή συμπίεση Deflate χωρίς κρυπτογράφηση.

Παραδείγματα

Το ακόλουθο παράδειγμα δείχνει πώς να συμπιέσετε ένα μεμονωμένο αρχείο με προεπιλεγμένες ρυθμίσεις.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Δείτε επίσης


Archive(Stream, ArchiveLoadOptions, ArchiveEntrySettings)

Αρχικοποιεί μια νέα παρουσία τουArchive Η λίστα καταχωρήσεων κλάσης και σύνθεσης μπορεί να εξαχθεί από το αρχείο.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ΠαράμετροςΤύποςΠεριγραφή
sourceStreamStreamΗ πηγή του αρχείου.
loadOptionsArchiveLoadOptionsΕπιλογές για τη φόρτωση του υπάρχοντος αρχείου.
newEntrySettingsArchiveEntrySettingsΡυθμίσεις συμπίεσης και κρυπτογράφησης που χρησιμοποιούνται για τις νέες προσθήκεςArchiveEntry αντικείμενα. Εάν δεν καθορίζεται, θα χρησιμοποιηθεί η πιο κοινή συμπίεση Deflate χωρίς κρυπτογράφηση.

Εξαιρέσεις

εξαίρεσηκατάσταση
ArgumentExceptionsourceStream δεν είναι αναζητήσιμο.
InvalidDataExceptionΗ κεφαλίδα κρυπτογράφησης για το AES έρχεται σε αντίθεση με τη μέθοδο συμπίεσης WinZip.

Παρατηρήσεις

Αυτός ο κατασκευαστής δεν αποσυμπιέζει καμία καταχώρηση. ΒλέπωOpen μέθοδος αποσυμπίεσης.

Παραδείγματα

Το ακόλουθο παράδειγμα εξάγει ένα κρυπτογραφημένο αρχείο και, στη συνέχεια, αποσυμπιέζει την πρώτη καταχώρηση στο aMemoryStream.

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Δείτε επίσης


Archive(string, ArchiveLoadOptions, ArchiveEntrySettings)

Αρχικοποιεί μια νέα παρουσία τουArchive Η λίστα καταχωρήσεων κλάσης και σύνθεσης μπορεί να εξαχθεί από το αρχείο.

public Archive(string path, ArchiveLoadOptions loadOptions = null, 
    ArchiveEntrySettings newEntrySettings = null)
ΠαράμετροςΤύποςΠεριγραφή
pathStringΗ πλήρως πιστοποιημένη ή η σχετική διαδρομή προς το αρχείο αρχειοθέτησης.
loadOptionsArchiveLoadOptionsΕπιλογές για τη φόρτωση του υπάρχοντος αρχείου.
newEntrySettingsArchiveEntrySettingsΡυθμίσεις συμπίεσης και κρυπτογράφησης που χρησιμοποιούνται για τις νέες προσθήκεςArchiveEntry αντικείμενα. Εάν δεν καθορίζεται, θα χρησιμοποιηθεί η πιο κοινή συμπίεση Deflate χωρίς κρυπτογράφηση.

Εξαιρέσεις

εξαίρεσηκατάσταση
ArgumentNullExceptionpath είναι μηδενικό.
SecurityExceptionΟ καλών δεν έχει την απαιτούμενη άδεια πρόσβασης.
ArgumentExceptionοpath είναι κενό, περιέχει μόνο λευκά κενά ή περιέχει μη έγκυρους χαρακτήρες.
UnauthorizedAccessExceptionΠρόσβαση στο αρχείοpath απορρίπτεται.
PathTooLongExceptionΤο καθορισμένοpath, όνομα αρχείου ή και τα δύο υπερβαίνουν το μέγιστο μήκος που καθορίζεται από το σύστημα. Για παράδειγμα, σε πλατφόρμες που βασίζονται σε Windows, οι διαδρομές πρέπει να είναι μικρότερες από 248 χαρακτήρες και τα ονόματα αρχείων πρέπει να είναι λιγότερο από 260 χαρακτήρες.
NotSupportedExceptionΑρχείο στοpath περιέχει άνω και κάτω τελεία (:) στη μέση της συμβολοσειράς.

Παρατηρήσεις

Αυτός ο κατασκευαστής δεν αποσυμπιέζει καμία καταχώρηση. ΒλέπωOpen μέθοδος αποσυμπίεσης.

Παραδείγματα

Το ακόλουθο παράδειγμα εξάγει ένα κρυπτογραφημένο αρχείο και, στη συνέχεια, αποσυμπιέζει την πρώτη καταχώρηση στο aMemoryStream.

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Δείτε επίσης