code: public static void copyDirectory( File source, File target ) throws IOException {
  
  		Utils.createDirectory( target );
  		for( File sourceFile : listAllFiles( source, false )) {
  			String path = computeFileRelativeLocation( source, sourceFile );
  			File targetFile = new File( target, path );
  
  			Utils.createDirectory( targetFile.getParentFile());
  			copyStream( sourceFile, targetFile );
  		}
  	}
docs: Copies a directory.
  <p>
  This method copies the content of the source directory
  into the a target directory. This latter is created if necessary.
  </p>
  
  @param source the directory to copy
  @param target the target directory
  @throws IOException if a problem occurred during the copy