/** * Copies a directory recursively. * * @param source the source directory * @param target the target directory */ public static void copyDirectory(File source, File target) { for (File srcFile : source.listFiles()) { if (srcFile.isDirectory()) { File targetChild = new File(target, srcFile.getName()); ensureExistingDirectory(targetChild); copyDirectory(srcFile, targetChild); } else { copyFileToDirectory(srcFile, target); } } }