我使用以下代码解压缩.fsd
文件,但它显示异常:
java.util.zip.ZipException: Central Directory Entry not found
我的代码是:
public void unzipFolder(String zipfile_name,String unzipfolder_name){
System.out.println("zip file nme----"+zipfile_name);
try {
ZipFile zf = new ZipFile(zipfile_name);
System.out.println("zip file size----"+zf.size());
Enumeration< ? extends ZipEntry> zipEnum = zf.entries();
String dir = unzipfolder_name;
while( zipEnum.hasMoreElements() ) {
ZipEntry item = (ZipEntry) zipEnum.nextElement();
if (item.isDirectory()) {
File newdir = new File(dir + File.separator + item.getName());
newdir.mkdir();
} else {
String newfilePath = dir + File.separator + item.getName();
File newFile = new File(newfilePath);
if (!newFile.getParentFile().exists()) {
newFile.getParentFile().mkdirs();
}
copyInputStream(zf.getInputStream(item),
new BufferedOutputStream(new FileOutputStream(newfilePath)));
}
}
zf.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static final void copyInputStream(InputStream in, OutputStream out) {
byte[] buffer = new byte[1024];
int len;
try {
while((len = in.read(buffer)) >= 0){
out.write(buffer, 0, len);
}
in.close();
out.close();
} catch (IOException e) {
System.err.println("Zip -> copyInputStream : "+e.getMessage());
}
}
此处zipfile_name=/mnt/sdcard/forside_bookshelf_download/P160225200007046510000718MASenC.fsd
和unzipfolder_name=/mnt/sdcard/
。
我在以下行中得到了上述异常:
ZipFile zf = new ZipFile(zipfile_name);
有人可以帮帮我吗?
答案 0 :(得分:0)
我使用zip4j曾经遇到过这个问题。 当我在zipfile中添加一个主文件夹并将所有其他内容放在那里时,它就解决了。