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, ""); // copy all files in assets folder in my project
|
}
|
|
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) {
|
System.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")) // extension was added to avoid compression on APK file
|
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) {
|
// System.out.println("AssetHelper.copyFile " + e.getMessage());
|
}
|
}
|
}
|