Apache Commons Compress を使用して 7-zip ファイルの内容を読み取ろうとしています。コンテンツの読み取り/抽出には興味がありません。すべてのエントリのリストを取得したいだけです。
このコードを作成しましたが、4MB のアーカイブでは、ファイル全体を読み取るのに 6 秒かかります。
public static void main(String[]args) throws IOException{
File sevenz = new File("testfile.7z");
System.out.println("Reading 7-zip...");
SevenZFile sevenZFile = new SevenZFile(sevenz);
long s = System.currentTimeMillis();
SevenZArchiveEntry entry;
while((entry=sevenZFile.getNextEntry())!=null){
System.out.print(entry.isDirectory()?"Dir":"File");
System.out.print("\t");
System.out.print("*********.***"); //entry.getName();
System.out.print("\t");
System.out.println(entry.getHasCrc()?"CRC":"NO-CRC");
}
System.out.println("------------------------------");
System.out.println("7-zip\t"+(System.currentTimeMillis()-s)+" ms to read.");
}
出力は次のとおりです。
Reading 7-zip...
File *********.*** CRC
File *********.*** CRC
File *********.*** CRC
File *********.*** CRC
File *********.*** CRC
------------------------------
7-zip 6236 ms to read.
ファイルの一覧表示プロセスにこれだけ時間がかかるのでしょうか、それとも何か間違っていますか? また、すべてのプリントを削除しようとしましたが、ファイルの読み取りにかかる時間は同じです。