Copie todos los directorios al servidor por FTP usando Java

Necesito copiar un directorio del disco local a un servidor. El directorio contiene muchos directorios, subdirectorios y archivos. (Piense en un árbol jerárquico de directorios).

Aquí hay un ejemplo para copiar un archivo:

 public void saveFilesToServer() throws IOException {
    FTPClient ftp = new FTPClient();
    ftp.connect(ftp.foobar.com);
    if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
        ftp.disconnect();
        log.fatal("FTP not disconnected");
    }

    ftp.login("foo", "qwerty");
    log.info("Connected to server .");
    log.info(ftp.getReplyString());
    ftp.changeWorkingDirectory("test");
    ftp.makeDirectory("somedir");
    ftp.changeWorkingDirectory("somedir");
    ftp.setFileType(FTPClient.BINARY_FILE_TYPE);    
    java.io.File srcFolder = new java.io.File(folderPath);      
    FileInputStream fis = new FileInputStream(srcFolder);
    ftp.storeFile (fileName, fis);
    ftp.disconnect();
    log.info("FTP disconnected");
}

Ahora, necesito copiar un directorio (somedir) con todos los subdirectorios y archivos desomedir.

Creo que el algoritmo debería usar recursión. ¿Alguien sabe cómo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta