4

サイズが〜100MBで、ファイルが〜15000の大きなアーカイブ(私の場合はzip)があります。このアーカイブからファイルを 1 つだけ抽出する必要があります。

次のコードを試しました:

final String zipPath = "archive.zip";
FileInputStream fin = new FileInputStream(zipPath);

in = new ZipInputStream(fin);

for (ZipEntry entry = in.getNextEntry(); entry != null; entry = in.getNextEntry()) {
    if(entry.equals("file.name")){
    //unzip this entry
    break;
}
}

動作しますが、遅すぎます。

アーカイブで必要なファイルを見つける別の可能性はありますか? たとえば、Linuxでは、コマンドで非常に高速に実行できます

unzip archive.zip myfile.name

一般に、あるアーカイブから 1 つのファイルを見つけて解凍する必要があります。それは別のフォーマットである可能性があります... 別のフォーマットを使用すると、より簡単になる可能性があります。

4

1 に答える 1

1

libzip ライブラリを使用できます。

于 2012-08-04T17:32:10.130 に答える