Entwickler-Ecke

Sonstiges (Delphi) - Lösung um Datei zu entpacken


Marduk - Mo 30.09.02 09:04
Titel: Lösung um Datei zu entpacken
Hallo Leute.
Folgendes Problem: Ich möchte gerne eine heruntergeladene Datei automatisch entpacken lassen.
Meine Lösung momentan funktioniert mit einer externen unzip.exe und einem WinExec Befehl.
Nun kann ich zwar in Verzeichnisse mit langem Dateinamen entpacken, jedoch nicht wenn ein Leerzeichen dazwischen ist (z.B.: c:\hallo fritz).
Bietet Delphi ein Unzip Prog an ? Kennt ihr eine andere Lösung ?

Hier noch mein Code:

Quelltext
1:
2:
WinExec(PChar('unzip.exe -o '+desttext+'/update.zip -d '+desttext),
                     SW_HIDE);

Grüße

Dennis :P


Arakis - Mo 30.09.02 10:05

Hi Marduk user defined image,
Hmmm, das mit Dos ist so ne Sache. Du müsstest den 8+3-Dateinamen rausbekommen, also dieses bekannte "PROGRA~1" zum Beispiel :wink:
Es ist ratsam, ShellExecute als Ausführungsbefehl zu verwenden, das WinExec nur noch aus Kompatibilitätsgründen vorhanden ist.

Ansonsten mach bau doch einfach einen Entpacker in dein Programm ein: Nimm die ZLib-DLL [http://www.gzip.org/zlib/], dort gibt es auch ein Delphi-Interface dafür.

Bis dann
user defined image


Tino - Mo 30.09.02 10:07
Titel: Re: Lösung um Datei zu entpacken
Marduk hat folgendes geschrieben:
jedoch nicht wenn ein Leerzeichen dazwischen ist

Schließe den Dateinamen in doppelte Anführungszeichen (") ein... dann sollte es funktionieren!

Gruß
TINO


Marduk - Mo 30.09.02 10:46

Ich habs mit ZipDll versucht, hat auf Anhieb geklappt. Danke für eure Hilfe.