Mi piacerebbe sostituire un file (= elimina vecchio e aggiungi nuovo) in un archivio zip con l'unità System.Zip standard Delphi XE2/XE3. Ma non ci sono metodi di sostituzione/cancellazione. Qualcuno ha un'idea di come potrebbe essere raggiunto senza dover estrarre tutti i file e aggiungerli a un nuovo archivio?Delphi XE2 TZipFile: sostituire un file nell'archivio zip
Ho questo codice, ma aggiunge la "Document.txt" ancora una volta se è già presente:
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;
Nota: ho usato TPAbbrevia prima (che ha fatto il lavoro), ma mi piacerebbe per usare l'unità Zip di Delphi ora. Quindi per favore non rispondere a qualcosa come "usa un'altra libreria". Grazie.
Hai risposto alla tua domanda. La libreria ZIP integrata non supporta questa funzionalità. –
Forse qualcuno ha scritto un trucco che fa? – oxo
Perché non usi Abbrevia? Mi è stato detto che è molto buono. –