Ja, es macht es gut. (Aber wenn jemals Sie nicht C-Code mögen, sollten Sie bei 7-Zip SDK sehen, dass Code in C haben ++ und C#.)
- alle Funktionen, die Dateien aus einem Zip-Archiv zu durchsuchen und zu dekomprimieren sind in :
unzip.h
- Alle Funktionen komprimieren und fügen Sie Dateien in einem Zip-Archiv befinden sich in:
zip.h
(Blick auf contrib\minizip\unzip.h und contrib\minizip\zip.h)
zum Beispiel Dekomprimieren: die unzOpen()
Funktionen Ihrer Zip-Datei gibt ein unzFile
dann unzGoToFirstFile()
und unzGoToNextFile()
auf diesen unzFile
verwenden, um durch alle Dateien im Archiv zu suchen.
dann bekommen Sie die Datei Informationen für die einzelnen Dateien mit unzGetCurrentFileInfo()
, nämlich für seine Größe,
sicher Sie unzOpenCurrentFile()
irgendwann anrufen sollte.
und rufen Sie unzReadCurrentFile()
mit der Größe von fileinfo, Abrufen des binären Inhalts der archivierten Datei.
Optional gibt es eine undurchsichtige Struktur, die Sie bereitstellen können, um Ihre eigene I/O-Funktion zu verwenden, aber offensichtlich gibt es eine Win32-Standardimplementierung für den Dateizugriff, so dass Sie sich darüber keine Gedanken machen können.
PS: und vergessen Sie nicht, unzCloseCurrentFile()
Ok, ich habe die Funktionen gefunden und verwende miniunzip zum testen mit. Ich habe eine Datei c: \ a.zip mit 7zip erstellt. Es enthält eine Datei.Ich führe miniunzip -x c: \ a.zip -d c: \ reza und und unzOpen2_64 schlägt fehl. Ich betreibe dies unter Windows. Irgendwelche Gedanken darüber, warum dies der Fall ist? – reza
Diese Links sind tot. – kberson
@ Kberson Thx für die Bemerkung. Ich habe Links aktualisiert, die auf https://github.com/madler/zlib/blob/master/contrib/minizip zeigen. –