2011-10-19 5 views
0

私はSDカードに解凍しなければならないファイルがたくさんあるジップをたくさん持っています。大量の小さなファイルを解凍したファイル

現在、私はzip内の各ファイルに対してZipentryutil.zipパッケージを使用しています。これは正常に動作しますが、非常に遅いです。

Java/Androidの通常のzipよりも速くそれらのファイルを処理できるlibがあるのだろうかと思います。

編集:ジップは約5から10MBの大きさで、写真の各部分である約50から100までのjpgファイルを含むアーカイブです。すべてのzipを特定のフォルダに展開する必要があります。 Slowとは、同じファイルがIPhoneで数分の1時間に抽出されることを意味します。

編集2コード:

ZipInputStream zin = new ZipInputStream(fd); 
    ZipEntry ze = null; 
    while ((ze = zin.getNextEntry()) != null) { 
    System.out.println("Unzipping " + ze.getName()); 

    if (ze.isDirectory()) { 
     File f = new File(targetFilePath + ze.getName()); 

     if (!f.isDirectory()) { 
     f.mkdirs(); 
     } 
    } else { 
     int size; 
     byte[] buffer = new byte[2048]; 

     FileOutputStream outStream = new FileOutputStream(targetFilePath + ze.getName() + ".tile"); 
     BufferedOutputStream bufferOut = new BufferedOutputStream(outStream, buffer.length); 

     while ((size = zin.read(buffer, 0, buffer.length)) != -1) { 
     bufferOut.write(buffer, 0, size); 
     } 

     bufferOut.flush(); 
     bufferOut.close(); 
    } 
    } 
    zin.close(); 
+0

"大量のファイル"と "非常に遅い"という意味の例を挙げてください。 –

+0

こんにちはLUk私は私の質問を編集しました、私はそれが今より明確であることを願っています。 – Thommy

+0

私たちにいくつかのコードを教えてください。 – EJP

答えて

1

あなたができる最善のケースは、NDKの道を行くです。 AFAIK、GoogleはzlibのNDKでサポートされているヘッダ/ APIも提供しています。

関連する問題