0
我使用下面的代碼解壓一個.fsd
文件,但它顯示了異常:解壓文件.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);
任何人可以幫助我嗎?
謝謝jelle的回覆,請你清楚說明你是如何解壓的。 – user1498549
zipfile中的結構如下所示:file.zip/data/filetoUnzip.png 'final ZipFile zipFile = new ZipFile(path); final FileHeader fileHeader = zipFile.getFileHeader(「data/fileToUnzip.png」);' 然後使用'zipFile.getInputStream(fileHeader)'將它們寫入另一個輸出流。 – Jelle