2016-09-21 3 views
-1

Как я могу рекурсивно скопировать папку из Windows на удаленный сервер linux с помощью jsch sftp?Как перенести/синхронизировать содержимое между окнами и удаленным сервером Linux?

Я уже пробовал использовать sftpchannel.put (src, dest), но он передает только файлы. Я также попытался выполнить итерацию по списку файлов, чтобы найти каталог и запустить рекурсивный цикл, но он сделал код еще более сложным с дополнительной обработкой исключений. Это их другой способ сделать это?

Есть ли способ использовать что-то вроде rsync между окнами и Linux-машинами с использованием Java-кода? Пожалуйста, помогите .. !!! Заранее спасибо...!!!

+1

Возможный дубликат [Передача папки и вложенных папок с использованием каналов в JSch?] (Http://stackoverflow.com/questions/11650013/transfer-folder-and-subfolders-using-channelsftp-in-jsch) –

ответ

0

Jsch не имеет операции SFTP для рекурсивной передачи каталога с локального на удаленный (или с удаленного на локальный). Чтобы рекурсивно передать каталог с помощью Jsch, вам нужно будет написать код для создания списка файлов и каталогов, которые будут переданы, а затем выпустить ChannelSftp.mkdir() вызовы для создания каждого удаленного каталога и ChannelSftp.put() операций для передачи каждого файла.

Единственный способ, которым я знаю использовать rsync из java, - это вызвать rsync command line utility в качестве внешней команды. Он будет вызывать ssh command line utility или другую внешнюю программу для собственного подключения к удаленному серверу. Джш обычно не принимал участия.

+0

Это похоже на когда мы перетаскиваем папку/файл через WinSCP. Я хочу подражать тому же поведению с помощью кода Java. –

Смежные вопросы