我遇到的檔案都是通過將工作檔案與不存在的檔案合併而創建的,從而有效地將一個檔案的內容複製到另一個中。這是我們合併過程的一部分。像這樣...ZipForge本機錯誤
ZipDestination := TZipForge.Create(nil);
if FileExists(DestinationZipFileName) then
ZipDestination.OpenArchive(fmOpenReadWrite + fmShareDenyWrite)
else
ZipDestination.OpenArchive(fmCreate);
ZipDestination.Zip64Mode := zmAuto;
ZipDestination.MergeWith(SourceZipFileName);
ZipDestination.CloseArchive;
這是從檔案中獲取blob,解壓縮它,並使其爲查看器做好準備的代碼。
CompressedStream := TMemoryStream.Create;
UnCompressedStream := TMemoryStream.Create;
GetCompressedStream(CompressedStream); // this fetches the blob from the zipfile
ZipForge.InMemory := True;
// Native Error 00035 on next line (sometimes)
ZipForge.OpenArchive(CompressedStream, False);
ZipForge.FindFirst('*.*', ArchiveItem, faAnyFile - faDirectory);
sZipFileName := ArchiveItem.FileName;
sZipPath := ArchiveItem.StoredPath;
ZipForge.ExtractToStream(sZipPath + sZipFileName, UnCompressedStream);
ZipForge.CloseArchive;
但我遇到 「本機錯誤00035」 有時。
現在奇怪的是,我得到這些錯誤,當我嘗試合併存檔(即努力合併後的檔案中查看其他斑點不會引發任何異常)
內查看第一BLOB這可能是一些關於ZipForge.MergeWith,我沒有照顧,也可能是我的GetCompressedStream的錯誤(但如果我切換存檔內斑點的順序,它總是發生在第一個唯一的) 。 看起來像它的時候了一個測試項目,看看到底發生了什麼上。
編輯
原來的問題簡單地要求對這些原住民的錯誤,我很滿意我所選擇的答案,其指導。至於我的問題,以及我相信這是我傳入OpenArchive的CompressedStream的問題。
什麼做的組件供應商說,當你問他們? –
@大衛,等待迴應。當我有迴應時我會更新。 – Sam
@David,供應商回覆「......假期專家......」。幸運的專家! – Sam