7-zip32.dll wrapper
Verfasst: 28.03.2007 16:30
Damit ich es nicht 2x posten muß, findet ihr im engl. Forum:
http://www.purebasic.fr/english/viewtopic.php?t=26429
http://www.purebasic.fr/english/viewtopic.php?t=26429
Code: Alles auswählen
#ARCEXTRACT_BEGIN = 0
#ARCEXTRACT_INPROCESS = 1
#ARCEXTRACT_END = 2
#ARCEXTRACT_OPEN = 3
#ARCEXTRACT_COPY = 4
Structure SEVENZIPINFO
dwOriginalSize.l
dwCompressedSize.l
dwCRC.l
uFlag.l
uOSType.l
wRatio.w
wDate.w
wTime.w
szFileName.c[#MAX_PATH]
dummy1.c[3]
szAttribute.c[8]
szMode.c[8]
EndStructure
Define.SEVENZIPINFO SEVENINFO
ArcName$="C:\test.7z"
DLL$="c:\7-zip32.dll"
If OpenLibrary(0, DLL$)
*SevenZipOpenArchive.l = GetFunction(0, "SevenZipOpenArchive")
*SevenZipCloseArchive.l = GetFunction(0, "SevenZipCloseArchive")
*SevenZipFindFirst.l = GetFunction(0, "SevenZipFindFirst")
*SevenZipFindNext.l = GetFunction(0, "SevenZipFindNext")
hARC.l = CallFunctionFast(*SevenZipOpenArchive, 0, ArcName$, #ARCEXTRACT_OPEN)
If hARC
If Not CallFunctionFast(*SevenZipFindFirst, hARC, "", @SEVENINFO)
name$ = PeekS(@SEVENINFO\szFileName)
len.q = SEVENINFO\dwOriginalSize
Debug name$+" "+Str(len)
While Not CallFunctionFast(*SevenZipFindNext, hARC, @SEVENINFO)
name$ = PeekS(@SEVENINFO\szFileName)
len.q = SEVENINFO\dwOriginalSize
Debug name$+" "+Str(len)
Wend
EndIf
CallFunctionFast(*SevenZipCloseArchive, hARC)
EndIf
CloseLibrary(0)
EndIf
Mit der Funktion SevenZip, siehe das zweite Beispiel im Thread, entpackenal90 hat geschrieben:Das sieht ja recht interessant aus. Vorallem da ich mit dem gedanken spiele
7z-Support in PFM einzubinden. Hab dazu mal ein paar fragen.:
1) Wie Extractet man denn nun Files aus dem Archiv ? Bei den Funktionsnamen
scheint kein Name dabei zu sein der darauf schliessen lässt etwas entpacken zu können.
Es ist aber die aktuelle Version, nur von 7-zip gibst noch eine beta.al90 hat geschrieben: 2) Wo kann man eigentlich eine aktuelle version der Dll downloaden ?
Ich meine es ist ja nicht die selbe wie die die im Original-7Zip enthalten ist.
Keine Ahnung, lese die engl. Anleitung, oder besser die japanische, dieal90 hat geschrieben: Da ich das ganze gerne auch ohne pbi machen würde, habe ich mir mal folgendes zusammengebastelt.:
Das klappt soweit auch zu meiner zufriedenheit. Allerdings ist mir aufgefallenCode: Alles auswählen
umständlicher code der nicht die statische lib nutzt
das keine Leeren Ordner angezeigt werden. Gibts da ne möglichkeit diesen
umstand zu korrigieren ?
Mach mich nicht schwach. Wie hast du das blos gefunden ?ts-soft hat geschrieben: [...]in Japan, den richtigen Krakel
anklicken und los gehts![]()
Na Gott sei Dank.Im moment ja nicht nötig
Naja was man oftmals alles so als umständlich bezeichnet. Da ich öfters malCode: Alles auswählen
umständlicher code der nicht die statische lib nutzt
Keine Ahnung, lese die engl. Anleitung, oder besser die japanische, die
ist aktueller![]()
Demnach isses also essig mit eigenem GUI wie es bspw. bei RAR möglich ist ? Ich meine so mit callback und allem drum und dran ?Mit der Funktion SevenZip kannste alles machen, was man mit der
Consolenversion per Kommandozeile machen kann, die Syntax ist
ähnlich, kannste also der 7-zip Hilfe entnehmen.
Genau darin liegt eben das problem.ts-soft hat geschrieben: Callback geht wohl auch irgendwie, aber da er autom. ein Fortschrittfenster
anzeigt, ist das doch unnötig.
Ich warte lieber bist du dich für's update wieder durch die japanischen seiten gequält hast.ts-soft hat geschrieben:Der Prototyp fürs Callback ist ja bei, den Rest mußte austesten.
Das warten bringt nichts, die Dokumentation wird dadurch sicherlich nichtal90 hat geschrieben:Ich warte lieber bist du dich für's update wieder durch die japanischen seiten gequält hast.ts-soft hat geschrieben:Der Prototyp fürs Callback ist ja bei, den Rest mußte austesten.
Die Docs vllt. nicht, aber der Code.ts-soft hat geschrieben:Das warten bringt nichts, die Dokumentation wird dadurch sicherlich nicht besser
Wie gesagt, schaue ich mir später mal genauer an.ich hab da im moment kein Bedarf, mir reicht das es theoretisch Funktionieren
müßte