addzip Packen mit recurse subdirectories

Moderator: Moderatoren

Antworten
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

addzip Packen mit recurse subdirectories

Beitrag 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:
Grüße Steffen
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Beitrag 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)
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16502
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag 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
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

Beitrag 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 ...
Grüße Steffen
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

Beitrag 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.
Grüße Steffen
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: addzip Packen mit recurse subdirectories

Beitrag 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
Benutzeravatar
Schubi
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 139
Registriert: Mi, 05. Okt 2005 15:10
Wohnort: Wiesloch
Hat sich bedankt: 5 Mal

Beitrag 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 ...
Grüße Steffen
Antworten