gpt4 book ai didi

java - Android zip 结构

转载 作者:行者123 更新时间:2023-11-30 00:50:49 25 4
gpt4 key购买 nike

我创建了一个目录,其中存储了一些图像。现在,为了将其压缩为单个 .zip 文件,我使用了以下代码:

private static void zipDir(String zipFileName, String dir) throws Exception {
File dirObj = new File(dir);
ZipOutputStream out = new ZipOutputStream(newFileOutputStream(zipFileName));
addDir(dirObj, out);
out.close();
}

static void addDir(File dirObj, ZipOutputStream out) throws IOException {
File[] files = dirObj.listFiles();
byte[] tmpBuf = new byte[1024];

for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
addDir(files[i], out);
continue;
}
FileInputStream in = new FileInputStream(files[i].getAbsolutePath());
System.out.println(" Adding: " + files[i].getAbsolutePath());
out.putNextEntry(new ZipEntry(files[i].getAbsolutePath()));
int len;
while ((len = in.read(tmpBuf)) > 0) {
out.write(tmpBuf, 0, len);
}
out.closeEntry();
in.close();
}

我从以下来源获得此代码:http://www.java2s.com/Code/Java/File-Input-Output/Makingazipfileofdirectoryincludingitssubdirectoriesrecursively.htm

然而,它不仅添加了 zip 文件中的图片,还添加了所有父目录。例如,不是将所有图片都放在 abc.zip 中,而是在以下路径中创建所有文件:Intruder_Pictures.zip\storage\emulated\0\Pictures\ABC Pictures\

有什么方法可以直接将图片放在 zip 中。

如有任何帮助,我们将不胜感激。问候

最佳答案

使用文件名而不是路径实例化 ZipEntry。

out.putNextEntry(new ZipEntry(files[i].getName()));

关于java - Android zip 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41065928/

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