我使用英巴卡迪諾C++ Builder的10.1柏林更新2.我用System.Zip.TZipFile.ExtractAll()
提取大.zip
文件。如何解決System.Zip.TZipFile.ExtractAll不能從.zip文件中提取所有數據?
這裏是圍繞問題方案的細節:
- 的
.zip
文件的大小爲387077 KB - 使用
System.Zip.TZipFile.ExtractAll()
提取.zip
文件,我們最終得到:- 一4,194,304 KB大小的文件。
- 數據被截斷。
- 使用Windows操作系統,右鍵單擊
Extract All...
,我們最終- 一6035259 KB大小的文件。
我們需要的所有數據的出這個文件。
讀System.Zip.TZipFile文檔,我沒有看到有關文件大小有關的限制什麼。
據我所知,這是英巴卡迪諾提供的方法來提取.zip
文件。我該如何解決這個問題?
你知道是否已將所有內容刷新到磁盤?假設在Windows操作系統上運行相當於'sync' – Griffin
@Griffin我確定這是我的無知,你是什麼意思將所有東西都刷到磁盤上?提取方法調用被包裝在'Synchronize()'中,它應該確保它在主線程上運行。 – HappyCoding
在基於Linux的操作系統中'sync'確保內存中的所有內容都被刷新爲閃存。我認爲在Windows中你可能有類似FlushFileBuffers這樣的東西。當然這可能不是問題的原因,但請檢查。 – Griffin