package com.basic.security.utils; import android.content.res.AssetManager; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class AssetHelper { static String TARGET_BASE_PATH = "/sdcard/appname/voices/"; public static void copyAssets(AssetManager assetManager, String outDir) { TARGET_BASE_PATH = outDir + "/"; copyFileOrDir(assetManager, ""); } private static void copyFileOrDir(AssetManager assetManager, String path) { String assets[] = null; try { assets = assetManager.list(path); if (assets.length == 0) { copyFile(assetManager, path); } else { String fullPath = TARGET_BASE_PATH + path; File dir = new File(fullPath); if (!dir.exists() && !path.startsWith("images") && !path.startsWith("sounds") && !path.startsWith("webkit")) if (!dir.mkdirs()) { } for (int i = 0; i < assets.length; ++i) { String p; if (path.equals("")) p = ""; else p = path + "/"; if (!path.startsWith("images") && !path.startsWith("sounds") && !path.startsWith("webkit")) copyFileOrDir(assetManager, p + assets[i]); } } } catch (IOException ex) { System1.out.println("AssetHelper.copyFileOrDir " + ex.getMessage()); } } private static void copyFile(AssetManager assetManager, String filename) { InputStream in = null; OutputStream out = null; String newFileName = null; try { in = assetManager.open(filename); if (filename.endsWith(".jpg")) newFileName = TARGET_BASE_PATH + filename.substring(0, filename.length() - 4); else newFileName = TARGET_BASE_PATH + filename; out = new FileOutputStream(newFileName); byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); out.flush(); out.close(); } catch (Exception e) { System1.out.println("AssetHelper.copyFile " + e.getMessage()); } } }