Chciałbym zastąpić plik (= usunąć stare i dodać nowe) w archiwum zip w standardzie Delphi XE2/XE3 System.Zip. Ale nie ma metod zamiany/usunięcia. Czy ktokolwiek ma pomysł, jak można to osiągnąć bez potrzeby wyodrębniania wszystkich plików i dodawania ich do nowego archiwum?Delphi XE2 TZipFile: zastępuje plik w archiwum zip
Mam ten kod, ale dodaje „Document.txt” jeszcze raz, czy to już obecny:
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;
Uwaga: Kiedyś TPAbbrevia przed (to nie praca), ale chciałbym używać teraz jednostki Zip Delphi. Więc proszę nie odpowiadać na coś w rodzaju "użyj innej biblioteki". Dziękuję Ci.
Ty odpowiedziałeś na swoje pytanie. Wbudowana biblioteka ZIP nie obsługuje tej funkcji. –
Może ktoś napisał hack, że to robi? – oxo
Dlaczego nie używasz Abbrevia? Powiedziano mi, że jest bardzo dobra. –