0
我嘗試製作顯示100張圖片的應用程序。 我想壓縮照片的文件夾,然後把它放在我的項目上。 現在我需要了解如何將zip文件夾複製到內部存儲,然後在android中解壓縮它?在Android中解壓縮文件夾
我嘗試製作顯示100張圖片的應用程序。 我想壓縮照片的文件夾,然後把它放在我的項目上。 現在我需要了解如何將zip文件夾複製到內部存儲,然後在android中解壓縮它?在Android中解壓縮文件夾
你可以將你的.zip文件包含在apk的Assets文件夾中,並將它們放在代碼中,將.zip複製到內部存儲並使用ZipInputStream進行解壓縮。
首頁複印德.zip文件的內部存儲,並解壓縮文件後:
protected void copyFromAssetsToInternalStorage(String filename){
AssetManager assetManager = getAssets();
try {
InputStream input = assetManager.open(filename);
OutputStream output = openFileOutput(filename, Context.MODE_PRIVATE);
copyFile(input, output);
} catch (IOException e) {
e.printStackTrace();
}
}
private void unZipFile(String filename){
try {
ZipInputStream zipInputStream = new ZipInputStream(openFileInput(filename));
ZipEntry zipEntry;
while((zipEntry = zipInputStream.getNextEntry()) != null){
FileOutputStream zipOutputStream = openFileOutput(zipEntry.getName(), MODE_PRIVATE);
int length;
byte[] buffer = new byte[1024];
while((length = zipInputStream.read(buffer)) > 0){
zipOutputStream.write(buffer, 0, length);
}
zipOutputStream.close();
zipInputStream.closeEntry();
}
zipInputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while((read = in.read(buffer)) != -1){
out.write(buffer, 0, read);
}
}
我有這個error.what我應該做的java.lang.IllegalArgumentException異常:文件名/包含路徑分隔符@ Joseph – programmer 2014-08-31 06:13:19
您的資產zip文件位於Assets文件夾的根目錄或另一個文件夾的內部? – Joseph 2014-09-01 16:17:09
@Joseph我怎樣才能解壓到這個代碼的特殊文件夾?例如我想提取文件到chach目錄中:getApplicationContext()。getCacheDir()。toString() – mahdi 2015-07-20 11:49:23