Java tutorial
//package com.java2s; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class Main { private static void copyFileOrDirectory(File source, File destination) throws IOException { if (source.isDirectory()) { if (!destination.exists()) { destination.mkdirs(); } File[] files = source.listFiles(); for (File f : files) { copyFileOrDirectory(f, new File(destination, f.getName())); } } else { copyFile(source, destination); } } private static void copyFile(File source, File destination) throws IOException { InputStream in = new FileInputStream(source); OutputStream out = new FileOutputStream(destination); byte[] buffer = new byte[1024]; int length; while ((length = in.read(buffer)) > 0) { out.write(buffer, 0, length); } out.flush(); out.close(); in.close(); } }