Archive.CreateEntry

CreateEntry(string, string, bool, ArchiveEntrySettings)

Einzelner Eintrag im Archiv erstellen.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeschreibung
nameStringDer Name des Eintrags.
pathStringDer vollständig qualifizierte Name der neuen Datei oder der relative Dateiname, der komprimiert werden soll.
openImmediatelyBooleanWahr, wenn die Datei sofort geöffnet wird, andernfalls die Datei beim Archivspeichern öffnen.
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen für hinzugefügtArchiveEntry Artikel.

Rückgabewert

Zip-Eintragsinstanz.

Ausnahmen

AusnahmeBedingung
ArgumentNullExceptionpath ist Null.
SecurityExceptionDer Anrufer verfügt nicht über die erforderliche Zugriffsberechtigung.
ArgumentExceptionDerpath leer ist, nur Leerzeichen enthält oder ungültige Zeichen enthält.
UnauthorizedAccessExceptionZugriff auf Dateipath ist abgelehnt.
PathTooLongExceptionDie angegebenepath, Dateiname oder beide überschreiten die vom System definierte maximale Länge. Beispielsweise müssen auf Windows-basierten Plattformen Pfade weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen umfassen.
NotSupportedExceptionDatei unterpath enthält einen Doppelpunkt (:) in der Mitte der Zeichenfolge.

Bemerkungen

Der Eintragsname wird ausschließlich innerhalb gesetztname Parameter. Der Dateiname, der in bereitgestellt wirdpath Parameter wirkt sich nicht auf den Eintragsnamen aus.

Wird die Datei sofort mit geöffnetopenImmediately Parameter wird es gesperrt, bis das Archiv gespeichert wird.

Beispiele

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

Siehe auch


CreateEntry(string, Stream, ArchiveEntrySettings)

Einzelner Eintrag im Archiv erstellen.

public ArchiveEntry CreateEntry(string name, Stream source, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeschreibung
nameStringDer Name des Eintrags.
sourceStreamDer Eingabestream für den Eintrag.
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen für hinzugefügtArchiveEntry Artikel.

Rückgabewert

Zip-Eintragsinstanz.

Beispiele

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

Siehe auch


CreateEntry(string, FileInfo, bool, ArchiveEntrySettings)

Einzelner Eintrag im Archiv erstellen.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, 
    ArchiveEntrySettings newEntrySettings = null)
ParameterTypBeschreibung
nameStringDer Name des Eintrags.
fileInfoFileInfoDie Metadaten der zu komprimierenden Datei.
openImmediatelyBooleanWahr, wenn die Datei sofort geöffnet wird, andernfalls die Datei beim Archivspeichern öffnen.
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen für hinzugefügtArchiveEntry Artikel.

Rückgabewert

Zip-Eintragsinstanz.

Ausnahmen

AusnahmeBedingung
UnauthorizedAccessExceptionfileInfo ist schreibgeschützt oder ein Verzeichnis.
DirectoryNotFoundExceptionDer angegebene Pfad ist ungültig, da er sich beispielsweise auf einem nicht zugeordneten Laufwerk befindet.
IOExceptionDie Datei ist bereits geöffnet.

Bemerkungen

Der Eintragsname wird ausschließlich innerhalb gesetztname Parameter. Der Dateiname, der in bereitgestellt wirdfileInfo Parameter wirkt sich nicht auf den Eintragsnamen aus.

Wird die Datei sofort mit geöffnetopenImmediately Parameter wird es gesperrt, bis das Archiv gespeichert wird.

Beispiele

Erstellen Sie ein Archiv mit Einträgen, die mit jeweils unterschiedlichen Verschlüsselungsmethoden und Passwörtern verschlüsselt sind.

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);
    }
}

Siehe auch


CreateEntry(string, Stream, ArchiveEntrySettings, FileSystemInfo)

Einzelner Eintrag im Archiv erstellen.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, 
    FileSystemInfo fileInfo)
ParameterTypBeschreibung
nameStringDer Name des Eintrags.
sourceStreamDer Eingabestream für den Eintrag.
newEntrySettingsArchiveEntrySettingsKomprimierungs- und Verschlüsselungseinstellungen für hinzugefügtArchiveEntry Artikel.
fileInfoFileSystemInfoDie Metadaten der zu komprimierenden Datei oder des Ordners.

Rückgabewert

Zip-Eintragsinstanz.

Ausnahmen

AusnahmeBedingung
InvalidOperationExceptionBeidesource UndfileInfo sind null odersourceist null undfileInfo steht für Verzeichnis.

Bemerkungen

Der Eintragsname wird ausschließlich innerhalb gesetztname Parameter. Der Dateiname, der in bereitgestellt wirdfileInfo Parameter wirkt sich nicht auf den Eintragsnamen aus.

fileInfo verweisen kannDirectoryInfo wenn der Eintrag Verzeichnis ist.

Beispiele

Archiv mit verschlüsseltem Eintrag erstellen.

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);
    }
}

Siehe auch