package file.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import android.content.Context; import android.content.res.AssetManager; import android.util.Log; public class CopyFilesFromAssets { private Context context; private String configsPath; public CopyFilesFromAssets(Context context,String configsPath) { this.context=context; this.configsPath=configsPath; } public void copyFileOrDir(String path) { AssetManager assetManager = context.getAssets(); String assets[] = null; try { assets = assetManager.list(path); if (assets.length == 0) { copyFile(path); } else { String fullPath = configsPath; File dir = new File(fullPath); if (!dir.exists()) dir.mkdirs(); for (int i = 0; i < assets.length; ++i) { copyFileOrDir(path + "/" + assets[i]); } } } catch (IOException ex) { } } private void copyFile(String filename) { AssetManager assetManager = context.getAssets(); InputStream in = null; OutputStream out = null; try { in = assetManager.open(filename); filename = filename.replace("libopenmw", ""); String newFileName = configsPath + filename; File tmp = new File(newFileName); String dirPath = newFileName.replace(tmp.getName(), ""); File dir = new File(dirPath); if (!dir.exists()) dir.mkdirs(); out = new FileOutputStream(newFileName); byte[] buffer = new byte[1024]; int read; while ((read = in.read(buffer)) != -1) { out.write(buffer, 0, read); } in.close(); in = null; out.flush(); out.close(); out = null; } catch (Exception e) { } } }