gpt4 book ai didi

android - 未找到中央目录条目 (ZipException)

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

我正在尝试将 zip 文件下载到 SD 卡。我正确下载了它,但是当我打开下载的文件(使用 ZipFile)时,我得到了这个 ZipException(“找不到中央目录条目”)。

Internet 文件没问题,SD 复制文件没问题(从 PC 打开并正确显示文件),但由于某些原因在 Android 中不起作用。

下载代码:

BufferedInputStream stream = null;
try {
stream = new BufferedInputStream(is, 8192);
}
....<p></p>

<p>try {
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = stream.read()) != -1 )
baf.append((byte) current); </p>

<p>BufferedOutputStream fos = new BufferedOutputStream(new FileOutputStream(path));
fos.write(baf.toByteArray());
fos.close();
}
...</p>

我猜是ZIP文件头的问题,没有写好,但不知道是什么原因。源代码 ZipEntry 类向我展示了这一点:

long sig = (hdrBuf[0] & 0xff) | ((hdrBuf[1] & 0xff) < <  8) |
((hdrBuf[2] & 0xff) < < 16) | ((hdrBuf[3] < < 24) & 0xffffffffL);
if (sig != CENSIG) {
throw new ZipException("Central Directory Entry not found");
}

谢谢,

最佳答案

自动回答:问题是 HTTP 请求使用了 Accept-Encoding: gzip

服务器返回一个已经压缩的文件并下载它,解压它,删除部分文件头。

不幸的是,7zip 可以正确打开(可能,不检查标题),但 Android 无法打开文件(可能,检查标题)。

简而言之:要小心,并正确检查某些文件的文件编码。

关于android - 未找到中央目录条目 (ZipException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4408841/

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