解压缩从归档单个文件的Android
我有一个大的存档(在我的情况邮编)与大小吧〜100MB,并用〜15000的文件。我需要快速从该压缩文件中提取一个文件。解压缩从归档单个文件的Android
我试了下代码:
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
通常,我需要从某个存档中找到并解压缩一个文件。它可以是另一种格式...可以用另一种格式,它可以更容易。
可以使用libzip library。
你好!谢谢你的答复!但如果我的理解不错libzip是一个C库,我可以用它在Android ? – lubart 2012-08-05 10:51:00
您可以编译任何东西到你的代码,你喜欢的。 – 2012-08-05 14:05:55
谢谢你的小费!为Android真的,我编译libzip现在我libzip.a这个文件我包括我的项目静态库和我写的'静态{系统.loadLibrary(“zip”);}'in Activity。Project works!可能是愚蠢的问题,但我现在可以如何压缩和解压缩文件?我应该在哪里找到函数列表?请解释一下,如果它不太难谢谢! – lubart 2012-08-08 00:40:35
你能以这样或那样的文件名进行排序? – 2012-08-04 11:28:07
嗨!我想不是。我有一个普通的zip压缩文件。我发现按照字母顺序阅读档案中的条目,但是如果我的文件名称为“zzz.file”,那么在档案中找到这个文件有很多时间。 – lubart 2012-08-04 13:11:58
如果他们按字母顺序排序,你可以做一个二进制搜索(O(日志(最坏情况复杂N))。 – 2012-08-04 18:21:13