Archive.CreateEntry

CreateEntry(string, string, bool, ArchiveEntrySettings)

Δημιουργία μίας καταχώρησης μέσα στο αρχείο.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
ΠαράμετροςΤύποςΠεριγραφή
nameStringΤο όνομα της καταχώρισης.
pathStringΤο πλήρως αναγνωρισμένο όνομα του νέου αρχείου ή το σχετικό όνομα αρχείου που πρόκειται να συμπιεστεί.
openImmediatelyBooleanΣωστό εάν ανοίξετε το αρχείο αμέσως, διαφορετικά ανοίξτε το αρχείο κατά την αποθήκευση αρχειοθέτησης.
newEntrySettingsArchiveEntrySettingsΠροστέθηκαν ρυθμίσεις συμπίεσης και κρυπτογράφησηςArchiveEntry είδος.

Επιστρεφόμενη Αξία

Περίπτωση εισόδου zip.

Εξαιρέσεις

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

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

Το όνομα καταχώρισης ορίζεται αποκλειστικά μέσαname παράμετρος. Το όνομα αρχείου που παρέχεταιpath η παράμετρος δεν επηρεάζει το όνομα της καταχώρισης.

Εάν το αρχείο ανοίξει αμέσως μεopenImmediately η παράμετρος αποκλείεται μέχρι να αποθηκευτεί το αρχείο.

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

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

Δείτε επίσης


CreateEntry(string, Stream, ArchiveEntrySettings)

Δημιουργία μίας καταχώρησης μέσα στο αρχείο.

public ArchiveEntry CreateEntry(string name, Stream source, 
    ArchiveEntrySettings newEntrySettings = null)
ΠαράμετροςΤύποςΠεριγραφή
nameStringΤο όνομα της καταχώρισης.
sourceStreamΗ ροή εισόδου για την καταχώρηση.
newEntrySettingsArchiveEntrySettingsΠροστέθηκαν ρυθμίσεις συμπίεσης και κρυπτογράφησηςArchiveEntry είδος.

Επιστρεφόμενη Αξία

Περίπτωση εισόδου zip.

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

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

Δείτε επίσης


CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

Δημιουργία μίας καταχώρησης μέσα στο αρχείο.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
ΠαράμετροςΤύποςΠεριγραφή
nameStringΤο όνομα της καταχώρισης.
fileInfoFileInfoΤα μεταδεδομένα του αρχείου που πρόκειται να συμπιεστούν.
openImmediatelyBooleanΣωστό εάν ανοίξετε το αρχείο αμέσως, διαφορετικά ανοίξτε το αρχείο κατά την αποθήκευση αρχειοθέτησης.
newEntrySettingsArchiveEntrySettingsΠροστέθηκαν ρυθμίσεις συμπίεσης και κρυπτογράφησηςArchiveEntry είδος.

Επιστρεφόμενη Αξία

Περίπτωση εισόδου zip.

Εξαιρέσεις

εξαίρεσηκατάσταση
UnauthorizedAccessExceptionfileInfo είναι μόνο για ανάγνωση ή είναι κατάλογος.
DirectoryNotFoundExceptionΗ καθορισμένη διαδρομή δεν είναι έγκυρη, όπως είναι σε μη αντιστοιχισμένη μονάδα δίσκου.
IOExceptionΤο αρχείο είναι ήδη ανοιχτό.

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

Το όνομα καταχώρισης ορίζεται αποκλειστικά μέσαname παράμετρος. Το όνομα αρχείου που παρέχεταιfileInfo η παράμετρος δεν επηρεάζει το όνομα της καταχώρισης.

Εάν το αρχείο ανοίξει αμέσως μεopenImmediately η παράμετρος αποκλείεται μέχρι να αποθηκευτεί το αρχείο.

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

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

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Δείτε επίσης


CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Δημιουργία μίας καταχώρησης μέσα στο αρχείο.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, 
    FileSystemInfo fileInfo)
ΠαράμετροςΤύποςΠεριγραφή
nameStringΤο όνομα της καταχώρισης.
sourceStreamΗ ροή εισόδου για την καταχώρηση.
newEntrySettingsArchiveEntrySettingsΠροστέθηκαν ρυθμίσεις συμπίεσης και κρυπτογράφησηςArchiveEntry είδος.
fileInfoFileSystemInfoΤα μεταδεδομένα του αρχείου ή του φακέλου που πρόκειται να συμπιεστούν.

Επιστρεφόμενη Αξία

Περίπτωση εισόδου zip.

Εξαιρέσεις

εξαίρεσηκατάσταση
InvalidOperationExceptionΚαι τα δυοsource καιfileInfo είναι μηδενικά ήsourceείναι μηδενικό καιfileInfo σημαίνει κατάλογος.

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

Το όνομα καταχώρισης ορίζεται αποκλειστικά μέσαname παράμετρος. Το όνομα αρχείου που παρέχεταιfileInfo η παράμετρος δεν επηρεάζει το όνομα της καταχώρισης.

fileInfo μπορεί να αναφέρεται σεDirectoryInfo εάν η καταχώρηση είναι κατάλογος.

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

Σύνθεση αρχείου με κρυπτογραφημένη καταχώρηση.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Δείτε επίσης