DEADSOFTWARE

445f30a80644fc052b45715e668963a2d63ffebd
[d2df-sdl.git] / android / src / org / d2df / app / CopyAssets.java
1 package org.d2df.app;
3 import android.content.Context;
4 import android.content.res.AssetManager;
6 import java.io.File;
7 import java.io.FileOutputStream;
8 import java.io.IOException;
9 import java.io.InputStream;
10 import java.io.OutputStream;
12 import android.util.Log;
14 public class CopyAssets {
16 public static void copyAssets(Context context, String prefix) {
17 AssetManager assetManager = context.getAssets();
18 String[] files = null;
19 try {
20 files = assetManager.list(prefix);
21 } catch (IOException e) {
22 Log.e("tag", "Failed to get asset file list.", e);
23 }
24 if (files != null) for (String filename : files) {
25 InputStream in = null;
26 OutputStream out = null;
27 try {
28 File f = new File(context.getExternalFilesDir(null), prefix);
29 if (!f.exists()) {
30 f.mkdirs();
31 }
32 File outFile = new File(context.getExternalFilesDir(null), prefix + "/" + filename);
33 if (!outFile.exists()) {
34 in = assetManager.open(prefix + "/" + filename);
35 out = new FileOutputStream(outFile);
36 copyFile(in, out);
37 }
38 } catch(IOException e) {
39 Log.e("tag", "Failed to copy asset file: " + filename, e);
40 }
41 finally {
42 if (in != null) {
43 try {
44 in.close();
45 in = null;
46 } catch (IOException e) {
48 }
49 }
50 if (out != null) {
51 try {
52 out.flush();
53 out.close();
54 out = null;
55 } catch (IOException e) {
57 }
58 }
59 }
60 }
61 }
63 public static void copyFile(InputStream in, OutputStream out) throws IOException {
64 byte[] buffer = new byte[1024];
65 int read;
66 while((read = in.read(buffer)) != -1){
67 out.write(buffer, 0, read);
68 }
69 }
71 }