public static boolean copyFilesFromDirectoryToDirectory(File origDir,
															File destDir) {

		if (!origDir.exists()) {
			return false;
		}
		
		if (!destDir.exists()) {
			destDir.mkdirs();
		}
		
		File array[]=origDir.listFiles();
		if ( array!= null) {
			for (File file : array) {
				File destFile = new File(destDir, file.getName());
				if (file.isDirectory()) {
					copyFilesFromDirectoryToDirectory(file, destFile);
				} else {
					if (!copyFile(file, destFile)) {
						return false;
					}
				}
			}
		} else {
			return false;
		}

		return true;
	}
public static boolean copyFilesFromDirectoryToDirectory ( File origDir , File destDir ) { if ( ! origDir . exists ( ) ) { return false ; } if ( ! destDir . exists ( ) ) { destDir . mkdirs ( ) ; } File array [ ] = origDir . listFiles ( ) ; if ( array != null ) { for ( File file : array ) { File destFile = new File ( destDir , file . getName ( ) ) ; if ( file . isDirectory ( ) ) { copyFilesFromDirectoryToDirectory ( file , destFile ) ; } else { if ( ! copyFile ( file , destFile ) ) { return false ; } } } } else { return false ; } return true ; }
Copya los directorios y ficheros de la carpeta origen hasta la carpeta
destino. En el path de destino crea los directorios que sean necesarios.

@param origDir
directorio origen
@param destDir
directorio final
@return true si va bien, false si falla