Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi KaZip Dateien packen (https://www.delphipraxis.net/87367-kazip-dateien-packen.html)

Gehstock 27. Feb 2007 17:12


KaZip Dateien packen
 
will wie gesagt ein archiv erzeugen mit ca 35 dateien
name der erstellten datei soll "test.sdt" sein

Delphi-Quellcode:
begin
 with Open do begin//with OpenDialog
      FilterIndex:=1;
      InitialDir := ExtractFilePath(FileName);
      FileName := ExtractFileName(FileName);
//      DefaultExt := 'xbi';
//      Filter := 'XBI files (*.xbi)|*.XBI|All files (*.*)|*.*';
//      Title:='Open xbi File';
     end;//with OpenDialog
     if Open.execute then begin
     KAZip1.Active:=true;
      Kazip1.FileName := Open.FileName;
       Kazip1.CreateZip('test.sdt');
        KAZip1.Active:=false;
         Kazip1.Close;
end;
end;
und dann halt für die anderen 38 dateien das selbe(geht das oder wird ein zuvor erzeugtes file überschrieben und nicht erweitert)
mit dem code wird nur eine leere datei erstellt



Alternativ auch mit
Delphi-Quellcode:
     if Open.execute then begin
     KAZip1.Active:=true;
//      Kazip1.FileNames.add(Open.FileName);
      Kazip1.AddFile(Open.FileName);
       Kazip1.CreateZip('test.sdt');
        KAZip1.Active:=false;
         Kazip1.Close;
getestet ohne erfolg immer noch leeres archiv

Klaus01 27. Feb 2007 18:36

Re: KaZip Dateien packen
 
Hallo,

schonmal in diesen Thread geschaut?

Vielleicht auch erst create und dann add und nicht umgekehrt.

Grüße
Klaus

Gehstock 27. Feb 2007 19:11

Re: KaZip Dateien packen
 
Edit so gehts

Delphi-Quellcode:
 with Open do begin//with OpenDialog
      FilterIndex:=1;
      InitialDir := ExtractFilePath(FileName);
      FileName := ExtractFileName(FileName);
//      DefaultExt := 'xbi';
//      Filter := 'XBI files (*.xbi)|*.XBI|All files (*.*)|*.*';
//      Title:='Open xbi File';
     end;//with OpenDialog
     if Open.execute then begin
      ExportFiles.Items.add(Open.FileName);
//      Kazip1.AddFile(Open.FileName);
      Kazip1.CreateZip('test.sdt');
      Kazip1.FileName:='test.sdt';
      KAZip1.Active:=true;
      Kazip1.AddFile(Open.FileName);
//        KAZip1.Comment:=ExportFiles.Items;
        KAZip1.Active:=false;
         Kazip1.Close;
allerdings packt er jetzt alle ordner mit ins archiv

also pfad ist c:\dateien\1\test.exe

dann sieht das zip so aus
ordner "dateien"->ordner"1"->und dann erst das file
es soll aber nur das file sein

Gehstock 28. Feb 2007 12:43

Re: KaZip Dateien packen
 
kann keiner helfen

Delphi-Quellcode:
FileName := ExtractFileName(FileName);
bewirkt scheinbar nichts

Klaus01 28. Feb 2007 12:58

Re: KaZip Dateien packen
 
Versuch es mal bitte mit dieser Funktion>

Delphi-Quellcode:
Function   AddFilesAndFolders(FileNames:TStrings; RootFolder:String; WithSubFolders : Boolean):Boolean;
Dort kannst Du einen RootFolder angeben, ich denke der wird dann nicht mehr im FileNamen auftauchen.

Gruesse
Klaus

Gehstock 28. Feb 2007 13:02

Re: KaZip Dateien packen
 
aber die dateien die ich hinzufügen möchte liegen nicht alle im selben folder

kann man den filename nicht einfach hinter dem letzten "\" abschneiden
bin daq leider noch nicht so erfahren

Klaus01 28. Feb 2007 14:53

Re: KaZip Dateien packen
 
Ich denke einmal so wird es nicht gehen:
Delphi-Quellcode:
Kazip1.AddFile(ExtractFileName(Open.FileName));
Alternative wäre, alle Files in eine temp Ordner zu kopieren und dann mit AddFilesAndFolders
zu arbeiten.
Oder sich die Sourcen zu AddFile anschauen und den Teil ändern welcher die Pfade mit in die Liste packt.

Grüße
Klaus

Gehstock 28. Feb 2007 23:33

Re: KaZip Dateien packen
 
habs hinbekommen war mein fehler


so nu muss noch ein text aus einen Memo mit ins archiv

Delphi-Quellcode:
Kazip1.AddFile(Memo1.Lines.SaveToFile,'config.sdt');
soll also ins archiv it den namen "config.sdt" da fehlt ihm aber ein parameter

Luckie 28. Feb 2007 23:48

Re: KaZip Dateien packen
 
Erst Speichern dann dem Achiv hinzufügen:
Delphi-Quellcode:
Memo1.Lines.SaveToFile('config.sdt');
Kazip1.AddFile('config.sdt');


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz