我想解壓zip文件。該文件包含我正在使用其他幾個files.The方法是:在android中解壓出現java.io.FileNotFoundException異常
private void unzipFile(String inputFileName,String outputDirName){
int dataCount=0;
byte[] dataArr=null;
File inputZipFile=null,targetDir=null,unzipFile=null;
ZipInputStream zipIPStream=null;
ZipEntry zipEntry=null;
BufferedOutputStream bfrOPStream=null;
FileOutputStream unzipOPStream=null;
try{
inputZipFile=new File(inputFileName);
targetDir=new File(outputDirName);
zipIPStream=new ZipInputStream(new BufferedInputStream(new FileInputStream(inputZipFile)));
while((zipEntry=zipIPStream.getNextEntry())!=null){
dataArr=new byte[2048];
// zipEntry=zipIPStream.getNextEntry();
System.out.println("ZipEntry:"+zipEntry.getName());
unzipFile=new File(targetDir.getAbsolutePath()+"/"+zipEntry.getName());
System.out.println("Checking the path:"+unzipFile.getPath());
if(!unzipFile.getParentFile().exists()){
unzipFile.getParentFile().mkdirs();
}
unzipOPStream=new FileOutputStream(targetDir.getPath()+"/"+zipEntry.getName());
bfrOPStream=new BufferedOutputStream(unzipOPStream,2048);
while((dataCount=zipIPStream.read(dataArr,0,2048))!=-1){
unzipOPStream.write(dataArr,0,dataCount);
}
unzipOPStream.flush();
unzipOPStream.close();
}
}catch(IOException ioe){
ioe.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
if(zipIPStream!=null){
try{
zipIPStream.close();
}catch(Exception e){
}
}
}
}
方法拋出以下錯誤
10-22 13:33:09.896: W/System.err(446): java.io.FileNotFoundException: /mnt/sdcard/iR/testbook/Caterpillar-Insect-Animal-Macro-HD-600x375.jpg (Not a directory)
哪行發生錯誤?它似乎試圖讀取這個.jpg作爲一個不正確的目錄.. –
似乎.jpg不是一個目錄。 – njzk2
我得到了解決方案。我試圖在保存文件的同一目錄下解壓縮文件。我改變了目錄,現在方法工作正常。 –