ayuda para subir una carpeta completa por ftp cliente servidor

hace poco copie un codigo y lo modifique un poco lo saque de este foro pero lo que pasa es que sube un archivo en especifico y yo quisiera subir una carpeta completa sin restricciones de espacio gracias espero me puedan ayudar.

public class NuevoFtp {
public static void main(String[] args) throws SocketException, UnknownHostException, IOException {
try {
FTPClient ftpClient = new FTPClient();
ftpClient.connect(InetAddress.getByName(""));
ftpClient.login("", "");
//Verificar conexión con el servidor.
int reply = ftpClient.getReplyCode();
System.out.println("Respuesta recibida de conexión FTP:" + reply);
if (FTPReply.isPositiveCompletion(reply)) {
System.out.println("Conectado Satisfactoriamente");
} else {
System.out.println("Imposible conectarse al servidor");
}
//Verificar si se cambia de direcotirio de trabajo
ftpClient.changeWorkingDirectory("/");//Cambiar directorio de trabajo
System.out.println("Se cambió satisfactoriamente el directorio");
//Activar que se envie cualquier tipo de archivo
ftpClient.changeWorkingDirectory("");
//ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
BufferedInputStream enviar = null;
enviar = new BufferedInputStream(new FileInputStream(""));
ftpClient.enterLocalPassiveMode();
ftpClient.storeFile("", enviar);
JOptionPane.showMessageDialog(null, "Se enviaron los archhivos con exito");
enviar.close();
ftpClient.logout();
ftpClient.disconnect();
} catch (Exception e) {
System.out.println(e.getMessage());
JOptionPane.showMessageDialog(null, "");
}
}
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

re: carpeta completa

¿Copiar una carpeta completa como un todo? No es posible. Copiar archivo por archivo, eso sí. De manera que para copiar una carpeta completa, lo haces archivo por archivo… y de manera recursiva. Aquí hay un ejemplo de esto último.