我想解壓縮存儲在原始文件夾中的zip文件。代碼如下Android解壓縮不是目錄問題
try
{
File myDir = new File(getFilesDir().getAbsolutePath());
File newFile = new File(myDir + "/imageFolder");
if(!newFile.exists())
{
newFile.mkdir();
}
ZipInputStream zipIs = new ZipInputStream(con
.getResources().openRawResource(R.raw.images));
ZipEntry ze = null;
while ((ze = zipIs.getNextEntry()) != null)
{
Log.v("Name", ze.getName());
Log.v("Size", "" + ze.getSize());
if(ze.getSize() >0)
{
FileOutputStream fout = new FileOutputStream(newFile
+ "/" + ze.getName());
byte[] buffer = new byte[1024];
int length = 0;
while ((length = zipIs.read(buffer)) > 0)
{
fout.write(buffer, 0, length);
}
zipIs.closeEntry();
fout.close();
}
}
zipIs.close();
} catch (Exception e)
{
e.printStackTrace();
}
但我不斷收到此錯誤
11月1日至18日:24:28.301:W/System.err的(2285):java.io.FileNotFoundException: /數據/data/com.example.ziptests/files/imageFolder/TestImages/background.png (不是一個目錄)
我完全不知道爲什麼它是導致此,它找到的文件,但是當它涉及把它們寫出來,它會引起這個錯誤。最初我發現了一個問題,這是由於在Mac上壓縮zip文件引起的,所以我將文件壓縮到了我的Windows機器上,而不是這樣,這樣擺脫了一個問題(當您在Mac上壓縮時,它會添加這些額外的文件夾和文件這樣的s store.ds導致嘗試解壓縮時出錯),但這不是一個目錄錯誤不斷出現。
任何想法爲什麼會發生這種情況?
壓縮文件使用winzip軟件壓縮? –
是的,我把它壓縮在Windows上而不是在Mac上,因爲它在mac上的壓縮導致問題,因爲它增加了額外的文件夾,這是煩人的 – AdamM
看到我的答案.... –