Copie todos os diretórios para o servidor por FTP usando Java

Eu preciso copiar um diretório do disco local para um servidor. O diretório contém muitos diretórios, subdiretórios e arquivos. (Pense em uma hierarquia de diretórios).

Aqui está um exemplo para copiar um arquivo:

 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");
}

Agora preciso copiar um diretório (somedir) com todos os subdiretórios e arquivos desomedir.

Eu acho que o algoritmo deve usar recursão. Alguém sabe como?

questionAnswers(2)

yourAnswerToTheQuestion