![]() |
Delphi-Version: 10 Seattle
Zippen einer Datei abbrechen?
Wie kann ich das Hinzufügen einer Datei zu einem Zip-Archiv
Delphi-Quellcode:
abbrechen? Es gibt zwar ein
zipFile.Add('x:\someBigFile.dat');
Delphi-Quellcode:
-Event eines
OnProgress
Delphi-Quellcode:
, aber da sehe ich keine Möglichkeit das irgendwie abzubrechen:
TZipFile
Delphi-Quellcode:
Mit der Exception komme ich zwar raus, allerdings mache ich mir etwas Sorgen um die Integrität der ZIP-Datei. Der Windows-Explorer kommt zwar mit zurecht, aber was heißt das schon?
uses System.Zip;
procedure TZipTest.handleZipProgress( Sender: TObject; FileName: string; Header: TZipHeader; Position: Int64 ); begin if(bedingungErfüllt) then raise EZipException.Create('Keine Lust mehr'); end; |
AW: Zippen einer Datei abbrechen?
Normalerweise gibt es bei OnProgress Events bzw. den zugehörigen Methoden auch einen Cancel Parameter. Mit der Zip-Komponente kenne ich mich allerdings nicht aus.
|
AW: Zippen einer Datei abbrechen?
Ohne Bezug auf die ZIP-Komponente zu nehmen, könntest du das Zippen vorerst bei einer temporären Kopie durchführen. War das hinzufügen erfolgreich, kopierst du die Temporäre Datei zurück.
|
AW: Zippen einer Datei abbrechen?
Zitat:
|
AW: Zippen einer Datei abbrechen?
Vielleicht solltest du auch mal genau beschreiben, was du erreichen willst. Denn das Zippen während des Packens abzubrechen und dann trotzdem noch eine korrekte, gültige ZIP-Datei zu erhalten wird auch mit den meisten anderen Programmen nicht funktionieren. I.d.R. wird die ZIP-Datei beim Abbrechen gelöscht.
|
AW: Zippen einer Datei abbrechen?
Zitat:
Zitat:
|
AW: Zippen einer Datei abbrechen?
Eine "Diese Datei zippen abbrechen"-Funktion wäre zwar schön, aber der Vorschlag von Pustekuchen reicht als Notlösung auch. Ich hätte nur ehrlich gesagt so etwas selbstverständliches wie ein Abbrechen erwartet.
Vielleicht kann ich, nach Überschreiten der Größe, die Datei auch wieder herausnehmen, das habe ich noch nicht geprüft. Wen es interessiert: Ich habe einen Haufen kleiner, gut komprimierbarer Dateien. Ich möchte so viele davon wie möglich einpacken bis ich an eine Obergrenze (z.B. < 5 MB) komme. |
AW: Zippen einer Datei abbrechen?
Zitat:
Delphi-Quellcode:
So nebenbei hat du auch in der ZIP-File-Größe noch Luft nach oben. :thumb:
procedure TForm1.ZipperOverallProgress(Sender: TObject;
Progress: Double; Operation: TZFProcessOperation; ProgressPhase: TZFProgressPhase; var Cancel: Boolean); begin ... end; |
AW: Zippen einer Datei abbrechen?
Ja, aber nur um einmal Dateien besser zippen zu können handele ich mir keine neuen Drittanbieter-Abhängigkeiten ein. Das ist im Delphi-Land alles schon kompliziert genug ;-)
|
AW: Zippen einer Datei abbrechen?
Wer zippt heute noch wo es schon lange bessere Alternativen gibt.
gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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 by Thomas Breitkreuz