android 压缩文件或者文件夹为zip格式 代码
public static void zipFolder(String srcFilePath, String zipFilePath) throws Exception {
// 创建Zip包
java.util.zip.ZipOutputStream outZip = new java.util.zip.ZipOutputStream(newjava.io.FileOutputStream(
zipFilePath));
// 打开要输出的文件
java.io.File file = new java.io.File(srcFilePath);
// 压缩
zipFiles(file.getParent() + java.io.File.separator, file.getName(), outZip);
// 完成,关闭
outZip.finish();
outZip.close();
}
private static void zipFiles(String folderPath, String filePath, java.util.zip.ZipOutputStream zipOut)
throws Exception {
if (zipOut == null) {
return;
}
java.io.File file = new java.io.File(folderPath + filePath);
// 判断是不是文件
if (file.isFile()) {
java.util.zip.ZipEntry zipEntry = new java.util.zip.ZipEntry(filePath);
java.io.FileInputStream inputStream = new java.io.FileInputStream(file);
zipOut.putNextEntry(zipEntry);
int len;
byte[] buffer = new byte[100000];
while ((len = inputStream.read(buffer)) != -1) {
zipOut.write(buffer, 0, len);
}
inputStream.close();
zipOut.closeEntry();
} else {
// 文件夹的方式,获取文件夹下的子文件
String fileList[] = file.list();
// 如果没有子文件, 则添加进去即可
if (fileList.length <= 0) {
java.util.zip.ZipEntry zipEntry = newjava.util.zip.ZipEntry(filePath + java.io.File.separator);
zipOut.putNextEntry(zipEntry);
zipOut.closeEntry();
}
// 如果有子文件, 遍历子文件
for (int i = 0; i < fileList.length; i++) {
zipFiles(folderPath, filePath + java.io.File.separator + fileList[i], zipOut);
}
}
}
}
- 01-11全球最受赞誉公司揭晓:苹果连续九年第一
- 12-09罗伯特·莫里斯:让黑客真正变黑
- 12-09谁闯入了中国网络?揭秘美国绝密黑客小组TA
- 12-09警示:iOS6 惊现“闪退”BUG
- 03-08消息称微软开发内部AI推理模型,或将成为Op
- 03-08美国法院驳回马斯克请求,未阻止OpenAI转型
- 03-08饿了么成立即时配送算法专家委员会 持续全局
- 03-08长安汽车:预计今年底长安飞行汽车将完成试
- 03-08谷歌推出虚拟试穿、AR美妆新功能