Seite 1 von 1

addzip Packen mit recurse subdirectories

Verfasst: Fr, 15. Sep 2006 16:13
von Schubi
Hallo Tom oder ein anderer, der schon mal addZip verwendet hat,

ich kämpfe zur Zeit mit dem Dingens, aber es will absolut nicht so wie ich will:

Ich möchte ein Archiv, in dem alle ausgewählten Dateien eines Ordners und ausgewählten Unterordnern drin sind und die Ordnerstruktur relativ erhalten bleibt.
Ich kann Optionen setzten, wie ich will, entweder speichert er die Dateien als absolute Struktur oder komplett ohne Struktur.
Relativ geht nicht. Folgende Optionen habe ich schon in allen Varianten durch:
DllCall(nDllZip,DLL_STDCALL,"addZIP_IncludeDirectoryEntries",0x01)
DllCall(nDllZip,DLL_STDCALL,"addZIP_IncludeEmptyDirectoryEntries",0x01)
DllCall(nDllZip,DLL_STDCALL,"addZIP_SaveStructure",0x01)
DllCall(nDllZip,DLL_STDCALL,"addZIP_Recurse",0x01)

Entweder spinnt addZip oder ich?
:roll:

Verfasst: Fr, 15. Sep 2006 16:32
von Tom
Hallo, Schubi.

Ich habe die rekursive Speicherung von Verzeichnissen nie benutzt. Allerdings binde ich ein wenig anders ein - vor allem über C-Konventionen, nicht per Standard-Call:

Code: Alles auswählen

DLLFUNCTION addZIP_SaveStructure (nRecVal) USING CDECL FROM azip32.dll

addZIP_SaveStructure(0)

Verfasst: Fr, 15. Sep 2006 17:38
von Martin Altmann
Hallo Steffen,
warum so umständlich?
Kann ich gar nicht verstehen - Andreas Gehrs-Pahl hat sich solch' eine Mühe gemacht, einen sehr guten Wrapper für Zlib zu schreiben!
Nutz' doch XbZLibZip() - geht wunderbar und ist auch umsonst!
Du findest hier im Forum schon diverse Postings dazu - der download ist auf der Seite von Phil Ide zu finden...

Viele Grüße,
Martin

Verfasst: Sa, 16. Sep 2006 9:49
von Schubi
Martin Altmann hat geschrieben:Hallo Steffen,
warum so umständlich?
Hallo Martin,
umständlich ist immer relativ! Der Kunde setzt bereits addZip an anderer Stelle ein. Ausserdem kann meines Wissens nach die XbZlib keine Passwort-Verschlüsselung. Auf jeden Fall ist der Einsatz von addZip aber keinesfalls kompliziert oder umständlich!
Nur macht es leider nicht ganz das, was es soll ...

Verfasst: Sa, 16. Sep 2006 9:52
von Schubi
Tom hat geschrieben:Allerdings binde ich ein wenig anders ein - vor allem über C-Konventionen, nicht per Standard-Call:
Hallo Tom,
danke für den Tip, ich werde es mal ausprobieren.
Ich glaube aber kaum, dass es damit zu tun hat, denn zwischen absoluter Struktur und gar keiner kann ich ja wählen.

Re: addzip Packen mit recurse subdirectories

Verfasst: Sa, 16. Sep 2006 12:36
von AUGE_OHR
hi,

arbeitest du mit BDZIP ?
Schubi hat geschrieben:Hallo Tom oder ein anderer, der schon mal addZip verwendet hat,

ich kämpfe zur Zeit mit dem Dingens, aber es will absolut nicht so wie ich will:

Ich möchte ein Archiv, in dem alle ausgewählten Dateien eines Ordners und ausgewählten Unterordnern drin sind und die Ordnerstruktur relativ erhalten bleibt.
Ich kann Optionen setzten, wie ich will, entweder speichert er die Dateien als absolute Struktur oder komplett ohne Struktur.
Relativ geht nicht. Folgende Optionen habe ich schon in allen Varianten durch:
DllCall(nDllZip,DLL_STDCALL,"addZIP_IncludeDirectoryEntries",0x01)
DllCall(nDllZip,DLL_STDCALL,"addZIP_IncludeEmptyDirectoryEntries",0x01)
DllCall(nDllZip,DLL_STDCALL,"addZIP_SaveStructure",0x01)
DllCall(nDllZip,DLL_STDCALL,"addZIP_Recurse",0x01)

Entweder spinnt addZip oder ich?
:roll:
bin mir jetzt nicht sicher, aber ...

1.) ist 0x01 = 1 ? Ich denke das nur 0 oder 1 zulässig sind.
2.) addZIP_Recurse würde ich an den Anfang stellen.

ich würde es mal so probieren :

Code: Alles auswählen

    IF nWindowHandle != NIL
      IF VALTYPE(nWindowHandle) == "N"
        DllCall(nDllZip,DLL_STDCALL,"addZIP_SetWindowHandle",nWindowHandle)
      ELSE
        DllCall(nDllZip,DLL_STDCALL,"addZIP_SetWindowHandle",nWindowHandle:getHwnd())
      ENDIF
    ENDIF
    DllCall(nDllZip,DLL_STDCALL,"addZIP_Recurse",1)
    DllCall(nDllZip,DLL_STDCALL,"addZIP_SaveStructure",1)
    DllCall(nDllZip,DLL_STDCALL,"addZIP_ArchiveName",cArcFile)
    DllCall(nDllZip,DLL_STDCALL,"addZIP_Include",cFiles)
    DllCall(nDllZip,DLL_STDCALL,"addZIP")
    DllUnload(nDllZip)
gruss by OHR
Jimmy

Verfasst: So, 17. Sep 2006 9:48
von Schubi
Hallo an alle,

danke für Eure Bemühungen.
Inzwischen habe ich selbst rausbekommen, warum es nicht geht:
Ich hatte alle Dateien einzeln in einer Liste. Mit dieser Liste hat er nur absolut oder gar keine Struktur gemacht.
Wenn ich die Dinger vorher in einen Temporärordner schiebe und dann nur *.* zippe, funktioniert es.
Warum auch immer ...