DotNetZip: Wie, um Dateien zu extrahieren, aber ignorieren Sie den Pfad in das zipfile?
Versuchen, Dateien zu extrahieren, um einen bestimmten Ordner ignorieren Sie den Pfad in das zipfile aber es scheint nicht ein Weg zu sein.
Das scheint eine ziemlich grundlegende Anforderung an all die anderen guten Sachen implementiert, die es gibt.
Was bin ich ?
code -
using (Ionic.Zip.ZipFile zf = Ionic.Zip.ZipFile.Read(zipPath))
{
zf.ExtractAll(appPath);
}
- Ich bin auf der Suche für eine ähnliche Lösung, aber ich möchte nur entfernen Sie den ersten Schritt, alle Dateien Inhalt... zB /mein solution/file/file1.txt wird /file/file1.txt. Jede Ressource für diese?
- check out stackoverflow.com/questions/6202267/... @atwellpub
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie entfernen Sie das Verzeichnis der Dateinamen nur vor dem entpacken...
zf.ToList().ForEach(entry => {...})
stattforeach (var entry in zf.Entries){}
? Gibt es einen Unterschied?Während Sie können nicht angeben, ob es für einen bestimmten Anruf zu
Extract()
oderExtractAll()
, dieZipFile
Klasse hat eineFlattenFoldersOnExtract
Feld. Wenn auf true gesetzt, es flacht sich die extrahierten Dateien in einem Ordner:Wird scheitern, wenn es 2 Dateien mit gleichem Dateinamen. Zum Beispiel
files\additionalfiles\file1.txt
temp\file1.txt
Erste Datei umbenannt werden file1.txt in der zip-Datei, und wenn die zweite Datei wird versucht, die umbenannt werden soll, wird eine Ausnahme ausgelöst, die sagen, dass ein Element mit dem gleichen Schlüssel ist bereits vorhanden
Können Sie die überladung, nimmt einen stream als parameter. Auf diese Weise haben Sie die volle Kontrolle der Pfad, wo die Dateien extrahiert werden, um.
Beispiel: