![]() |
Re: KAZip Open Archiv
Probiers mal so:
Delphi-Quellcode:
Um Dateien und Ordner hinzuzufügen eignet sich imho die Methode AddFilesAndFolders am besten. Also alle Dateien (kompletter Pfad) in eine StringList und folgendes:
procedure Tfrm_main.Neuanlegen1Click(Sender: TObject);
begin // Archiv neu anlegen if SaveDialog1.Execute then begin myZipArchive.CreateZip(SaveDialog1.FileName); Zip.FileName := SaveDialog1.FileName; // < ob das unbedingt nötig ist weis ich nicht Zip.Active := true; // das ist aber nötig ! Statusbar1.simpletext := ' Aktuelles Archiv: ' + SaveDialog1.FileName; end; end;
Delphi-Quellcode:
sl := TStringList.Create; // mal angenommen die TStringList-Variable heisst sl
Pfad := 'C:\Blub\'; // ne Variable wo der Hauptpfad der Archivdateien drin steht try <StringList füllen> myZipArchive.AddFilesAndFolders(sl,Pfad,true); // die Dateiliste und der Pfad werden übergeben, der dritte Parameter (true) bedeutet das auch Unterordner durchsucht und dem Archiv hinzugefügt werden (wenn in der StringList (sl) Ordner drin sind) finally myZipArchive.Active := false; myZipArchive.Close; sl.Free; end; |
Re: KAZip Open Archiv
Ou, hab mich verlesen CreateZip und Create sind einfach zu gleich :oops:
Im Oncrate muss es natürlich myZipArchive := TZipAchrive.Create(self); heisen, wie von Relicted schon geschrieben. |
Re: KAZip Open Archiv
Moin little_buddah,
ich hab's mal so gelöst .... Hab es aber gerade aus einem Projekt herausgelöst... nicht getestet. ... Es gibt ein Verzeichnis indem die Dateien liegen, die archiviert werden sollen. Es wird in das Verzeichnis gewechselt ... Das ZipFilename sieht so aus: <übergebenerName>_<Datum>.zip
Delphi-Quellcode:
cu && HTH
//==============================================================================
// Dateien packen procedure TForm1.packer(IniAList:TStrings; name, ldate, base: string); var str2, str3, str4: string; // str2: Zipdateiname, str3: e:\projekt\ZipOutput, str4: e:\projekt\sammel\, i, fcount : integer; // Filecount Alist: TStringlist; // Dateiliste zum packen SKBase, SKsrPath, SKzipPath : string; begin SKBase : string = 'e:\projekt'; SKsrPath : string = 'sammel\'; SKzipPath : string = 'ZIPoutput\'; KAZip1:=TKAZip.Create(nil); AList:=TStringlist.Create; AList.Assign(IniAList); str2:=name+'_'+ldate; // ZipArchiv str3:=base+'\'+SKsrPath; // dateien die eingepackt werden sollen str4:=base+'\'+SKzipPath; // Verzeichnis, wo das ZIP Archiv abgelegt werden soll if DirectoryExists(str3) then begin KAZip1.CreateZip(str4+str2+'.zip'); KAZip1.FileName:=str4+str2+'.zip'; KAZip1.Active:=true; Form1.ProgressBar1.Min:=0; Form1.Show; Form1.ProgressBar1.Max:=AList.Count; fcount:=0; for i := 0 to AList.Count -1 do begin // und ab zu den Logdateien chdir(str3); if FileExists(Alist[i]) then begin KAZip1.AddFile(Alist[i]); if fcount = 50 then begin Application.ProcessMessages; fcount:=0; end; fcount:=fcount + 1; end; // und wieder zurück chdir(ExtractFilePath(ParamStr(0))); Form1.Label1.Refresh; Form1.ProgressBar1.Position:=Form1.ProgressBar1.Position + 1; end; KAZip1.Active:=false; KAZip1.Close; KAZip1.Free; Form1.ProgressBar1.Position:=0; AList.Free; end else begin MessageDlg('Verzeichnis existiert nicht',mtInformation, [mbOk], 0); end; end; ascotlx |
Re: KAZip Open Archiv
Super.
Das
Delphi-Quellcode:
im OnCreate löst meine Sorgen.
myZipArchive := TKAZip.Create(self);
Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz