Ich möchte eine Datei (= löschen und neu hinzufügen) in einem Zip-Archiv mit dem Delphi XE2/XE3 Standard System.Zip-Gerät ersetzen. Aber es gibt keine Methoden zum Ersetzen/Löschen. Hat jemand eine Idee, wie es erreicht werden könnte, ohne alle Dateien extrahieren zu müssen und sie einem neuen Archiv hinzufügen zu müssen?Delphi XE2 TZipFile: Ersetzen Sie eine Datei im Zip-Archiv
ich diesen Code, aber es fügt die „Document.txt“ einmal mehr, wenn es bereits vorhanden:
var
ZipFile: TZipFile;
SS: TStringStream;
const
ZipDocument = 'E:\document.zip';
begin
ZipFile := TZipFile.Create; //Zipfile: TZipFile
SS := TStringStream.Create('hello');
try
if FileExists(ZipDocument) then
ZipFile.Open(ZipDocument, zmReadWrite)
else
ZipFile.Open(ZipDocument, zmWrite);
ZipFile.Add(SS, 'document.txt');
ZipFile.Close;
finally
SS.Free;
ZipFile.Free;
end;
end;
Hinweis: Früher habe ich TPAbbrevia vor (die die Arbeit geleistet haben), aber ich möchte Jetzt Delphi's Zip-Einheit verwenden. Also antworte bitte nicht wie "Benutze eine andere Bibliothek". Vielen Dank.
Sie haben Ihre eigene Frage beantwortet. Die integrierte ZIP-Bibliothek unterstützt diese Funktionalität nicht. –
Vielleicht hat jemand einen Hack geschrieben, dass es tut? – oxo
Warum benutzen Sie nicht Abbrevia? Mir wurde gesagt, dass es sehr gut ist. –