Autor Beitrag
Marduk
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mo 30.09.02 09:04 
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:
ausblenden Quelltext
1:
2:
WinExec(PChar('unzip.exe -o '+desttext+'/update.zip -d '+desttext),
                     SW_HIDE);

Grüße

Dennis :P
Arakis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 344



BeitragVerfasst: 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, dort gibt es auch ein Delphi-Interface dafür.

Bis dann
user defined image

_________________
Mit dem Computer löst man Probleme, die man ohne ihn nicht hätte.
Entwickler von SpaceTrek: The New Empire - Siehe Hompage!
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 30.09.02 10:07 
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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 30



BeitragVerfasst: Mo 30.09.02 10:46 
Ich habs mit ZipDll versucht, hat auf Anhieb geklappt. Danke für eure Hilfe.