gpt4 book ai didi

android压缩文件夹

转载 作者:搜寻专家 更新时间:2023-11-01 09:03:50 24 4
gpt4 key购买 nike

我正在做一个简单的 android 应用程序,它包含压缩文件夹。实际上压缩过程已经完成,文件保存在定义的位置。但问题是当我从模拟器推送压缩文件并手动解压缩文件时,文件已损坏。有什么问题。手动解压时文件是否损坏?

我的文件夹结构如下所示

TestPlay1- 包含两个子目录 - playlist 和 content
目录播放列表包含一个 xml 文件
目录内容包含图片、视频等文件

我的代码如下

String zipFile = "/mnt/sdcard/Testplay1.zip";
byte[] buffer = new byte[1024];
FileOutputStream fos = null;
try {
fos = new FileOutputStream(zipFile);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
ZipOutputStream zos = new ZipOutputStream(fos);
updata = new ArrayList<File>();
contentpath = new File(FOLDER_PATH);
try {
if (contentpath.isDirectory()) {
File[] listFile = contentpath.listFiles();
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
File[] contfile = listFile[i].listFiles();
for (int j = 0; j < contfile.length; j++) {
updata.add(contfile[j]);
FileInputStream fis = new FileInputStream(contfile[j]);
zos.putNextEntry(new ZipEntry(contfile[j].getName()));
int length;
while ((length = fis.read(buffer)) > 0) {
zos.write(buffer, 0, length);
}
zos.closeEntry();
// close the InputStream
fis.close();
}
}
}
zos.close();
}
System.out.println("Testplay1 Folder contains=>" + updata);
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}

最佳答案

我建议你使用 Zip4j:http://www.lingala.net/zip4j/
在那里你可以把文件夹放在压缩包里,剩下的就交给图书馆了

ZipFile zipfile = new ZipFile("/mnt/sdcard/bla.zip");
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
zipfile.addFolder("/mnt/sdcard/folderToZip", parameters);

关于android压缩文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13395218/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com