目前,我有下面的代碼,它使用一個ZipInputStream
到一個zip文件解壓到手機上的一個目標位置:可以確定要解壓縮文件的大小嗎?
ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(sourceZipFile));
ZipEntry zipEntry = null;
while ((zipEntry = zipInputStream.getNextEntry()) != null)
{
File zipEntryFile = new File(targetFolder, zipEntry.getName());
// write contents of 'zipEntry' to 'zipEntryFile'
有誰知道是否有可能(使用上述或其他的設置),以獲得(估計)在開始之前要解壓縮的文件或字節的總數,並且隨着解壓縮的進行而增加進度?我認爲ZipInputStream
可能有getTotalEntries()
或類似的方法,但找不到像這樣的東西...
關於集羣的好評! – trumpetlicks
感謝您的回答。我遇到了一個'java.util.zip.ZipFile'類,它有一個'size()'方法以及一個'entries()'方法來訪問zip條目。我正在考慮使用它來代替'ZipInputStream',以避免必須通過zip條目進行雙重傳遞。你碰巧知道兩個('ZipFile'和'ZipInputStream')類在性能,內存使用等方面是否相似? –
我從來沒有真正使用'ZipFile'。但檢查[此線程](http://stackoverflow.com/questions/4660819/java-util-zip-zipinputstream-v-s-zipfile)。 – npe