Java tutorial
//package com.java2s; import android.util.Log; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class Main { public static final String TAG = "FileUtils"; public static void copyFolder(String oldPath, String newPath) { try { (new File(newPath)).mkdirs(); File a = new File(oldPath); String[] file = a.list(); File temp = null; for (int i = 0; i < file.length; i++) { if (oldPath.endsWith(File.separator)) { temp = new File(oldPath + file[i]); } else { temp = new File(oldPath + File.separator + file[i]); } if (temp.isFile()) { FileInputStream input = new FileInputStream(temp); FileOutputStream output = new FileOutputStream(newPath + "/" + (temp.getName()).toString()); byte[] b = new byte[1024 * 5]; int len; while ((len = input.read(b)) != -1) { output.write(b, 0, len); } output.flush(); output.close(); input.close(); } if (temp.isDirectory()) { copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]); } } } catch (Exception e) { Log.e(TAG, "copyFolder() copy dir error", e); } } public static boolean isDirectory(String dir, String fileName) { return (new File(joinPath(dir, fileName)).isDirectory()); } public static String joinPath(String... args) { StringBuilder stringBuilder = new StringBuilder(); for (String arg : args) { stringBuilder.append(File.separator).append(arg.replaceAll("^/+", "")); } return stringBuilder.toString(); } }