Einzelnen Beitrag anzeigen

Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: [Abbrevia] Es wird immer wieder neues Archive erstellt

  Alt 24. Mai 2010, 00:05
Hallo Mathias,

ich kenne Abbrevia nicht, aber für mich erscheint das Ganze nur dann logisch, wenn "AddFiles" in der Schleife aufgerufen wird. "CloseArchive" schreibt vermutlich das Archiv auf die Festplatte (wie bei CloseFile) und damit überschreibst du das Archiv ständig.

Versuche also, nur "AddFiles" in deiner For-Schleife aufzurufen

Delphi-Quellcode:
AbMakeCab1.OpenArchive(cabs);
for i := 0 to OpenDialog2.Files.Count - 1 do
begin
  AbMakeCab1.AddFiles(OpenDialog2.Files[i], 0);
end;
AbMakeCab1.CloseArchive;
Aber das ist nur eine Vermutung.

Ich denke auch, dass du der Methode "AddFiles" einen absoluten Dateipfad übergeben solltest. Relative Pfade sind immer kritisch, da du nie weißt, auf welches Verzeichnis sie sich beziehen (siehe meinen Beispielcode).

Grüße
Matthias

Nachtrag: Ich liege übrigens richtig, wie die Beispiele von Abbrevia zeigen:

Delphi-Quellcode:
// Quelle: /examples/MakeCab1.pas

if OpenDialog1.Execute then
  if (OpenDialog1.Files.Count > 0) then begin
    // ...
    FileList := TStringList.Create;
    try
      FileList.Assign(OpenDialog1.Files);
      for i := 0 to Pred(FileList.Count) do
        AbMakeCab1.AddFiles(FileList.Strings[i], 0);
    finally
      FileList.Free;
    end;
    // ...
  end;
Mein Code von oben müsste auch funktionieren.
  Mit Zitat antworten Zitat