Tôi muốn thay thế tệp (= xóa cũ và thêm mới) trong kho lưu trữ zip với đơn vị System.Zip Delphi XE2/XE3. Nhưng không có phương pháp thay thế/xóa. Có ai có một ý tưởng làm thế nào nó có thể đạt được mà không cần phải giải nén tất cả các tập tin và thêm chúng vào một kho lưu trữ mới?Delphi XE2 TZipFile: thay thế một tệp trong kho lưu trữ zip
tôi có mã này, nhưng nó thêm "Document.txt" một lần nữa nếu nó đã hiện diện:
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;
Lưu ý: Tôi sử dụng TPAbbrevia trước (mà đã làm các công việc), nhưng tôi muốn để sử dụng đơn vị Zip của Delphi ngay bây giờ. Vì vậy, xin vui lòng không trả lời một cái gì đó như "sử dụng thư viện khác". Cảm ơn bạn.
Bạn đã trả lời câu hỏi của riêng bạn. Thư viện ZIP tích hợp không hỗ trợ chức năng đó. –
Có thể ai đó đã viết một bản hack mà nó làm? – oxo
Tại sao bạn không sử dụng Abbrevia? Tôi đã nói rằng nó rất tốt. –