zip 压缩文件代码示例
public String zipCompass(String filePath){
File zipFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis() + ".zip");
try{
//指定了两个待压缩的文件,都在assets目录中
String[] filenames = new String[]{ "activity_main.xml", "strings.xml" };
FileOutputStream fos = new FileOutputStream(zipFile);
ZipOutputStream zos = new ZipOutputStream(fos);
int i = 1;
//枚举filenames中的所有待压缩文件
while (i <= filenames.length){
//从filenames数组中取出当前待压缩的文件名,作为压缩后的名称,以保证压缩前后文件名一致
ZipEntry zipEntry = new ZipEntry(filenames[i - 1]);
//打开当前的zipEntry对象
zos.putNextEntry(zipEntry);
FileInputStream is = new FileInputStream(filePath);
byte[] buffer = new byte[8192];
int count = 0;
//写入数据
while ((count = is.read(buffer)) >= 0){
zos.write(buffer, 0, count);
}
zos.flush();
zos.closeEntry();
is.close();
i++;
}
zos.finish();
zos.close();
return zipFile.getAbsolutePath();
}
catch (Exception e){
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
return null;
}
}