ZIP- und UnZIP-Ordner in .NET
Contents
[
Hide
Show
]Mit der Aspose.ZIP-API können Sie Dateien komprimieren und dekomprimieren, ohne sich Gedanken über die zugrunde liegende Dateistruktur machen zu müssen. In diesem Artikel wird das Arbeiten mit Einzel- und Mehrfachdateikomprimierung beschrieben.
Verzeichnis komprimieren
Verzeichnisinhalte komprimieren
Schritte: Verzeichnisinhalte mit C# in ZIP-Dateien komprimieren
- Definieren Sie das Verzeichnis, das die zu komprimierenden Dateien enthält.
- Öffnen Sie mit FileMode.Create zwei Dateistreams für die ZIP-Ausgabedateien.
- Erstellen Sie eine Instanz der Archive-Klasse.
- Verwenden Sie die Methode CreateEntries, um alle Dateien und Ordner aus dem angegebenen Verzeichnis zum Archiv hinzuzufügen.
- Speichern Sie den komprimierten Verzeichnisinhalt mit der Save-Methode in mehreren ZIP-Dateien.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 string dataDir = RunExamples.GetDataDir_Data();
3
4 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Create))
5 {
6 using (FileStream zipFile2 = File.Open(dataDir + "CompressDirectory2_out.zip", FileMode.Create))
7 {
8 using (Archive archive = new Archive())
9 {
10 DirectoryInfo corpus = new DirectoryInfo(dataDir + "CanterburyCorpus");
11 archive.CreateEntries(corpus);
12 archive.Save(zipFile);
13 archive.Save(zipFile2);
14 }
15 }
16 }
Komprimiertes Verzeichnisarchiv extrahieren
Schritte: Extrahieren eines komprimierten Verzeichnisarchivs
- Öffnen Sie den ZIP-Dateistream mit FileMode.Open.
- Erstellen Sie eine Instanz der Archive-Klasse, indem Sie den ZIP-Dateistream übergeben.
- Extrahieren Sie den Inhalt des komprimierten Archivs mit ExtractToDirectory in ein angegebenes Verzeichnis.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressDirectory_out.zip", FileMode.Open))
3 {
4 using (var archive = new Archive(zipFile))
5 {
6 archive.ExtractToDirectory(dataDir + "DecompressFolder_out");
7 }
8 }
Dateien nach Dateiinformationen komprimieren
Schritte: Dateien nach Dateiinformationen komprimieren
- Öffnen Sie mit FileMode.Create einen Dateistream für die ZIP-Ausgabedatei.
- Erstellen Sie FileInfo-Objekte für die Dateien, die Sie komprimieren möchten.
- Erstellen Sie eine Instanz der Archive-Klasse.
- Verwenden Sie die CreateEntry-Methode, um jede Datei zum Archiv hinzuzufügen.
- Speichern Sie das Archiv mit der Save-Methode, mit optionalen Speicheroptionen wie dem Festlegen der Kodierung.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "CompressFilesByFileInfo_out.zip", FileMode.Create))
3 {
4 FileInfo fi1 = new FileInfo(dataDir + "alice29.txt");
5 FileInfo fi2 = new FileInfo(dataDir + "fields.c");
6
7 using (var archive = new Archive())
8 {
9 archive.CreateEntry("alice29.txt", fi1);
10 archive.CreateEntry("fields.c", fi2);
11 archive.Save(zipFile, new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
12 }
13 }
Archive mit verschiedenen Eintragsarchiven extrahieren
Schritte: Extrahieren Sie Archive mit unterschiedlichem Eintrag Passwörter
- Öffnen Sie den ZIP-Dateistream mit FileMode.Open.
- Erstellen Sie eine Instanz der Archive-Klasse, indem Sie den ZIP-Dateistream übergeben.
- Extrahieren Sie den ersten Eintrag aus dem Archiv und geben Sie mithilfe der Extract-Methode ein spezifisches Passwort für diesen Eintrag an.
- Extrahieren Sie den zweiten Eintrag mit einem anderen Passwort und speichern Sie ihn in einer separaten Ausgabedatei.
1 // For complete examples and data files, please go to https://github.com/aspose-zip/Aspose.ZIP-for-.NET
2 using (FileStream zipFile = File.Open(dataDir + "\\different_password.zip", FileMode.Open))
3 {
4 using (Archive archive = new Archive(zipFile))
5 {
6 archive.Entries[0].Extract(dataDir + "alice29_extracted_pass_out.txt", "first_pass");
7 archive.Entries[1].Extract(dataDir + "asyoulik_extracted_pass_out.txt", "second_pass");
8 }
9 }