Как приостановить/возобновить процедуру во время/после загрузки файла с помощью ChannelSftp

Я пытаюсь загрузить файл с локального диска на удаленный сервер с помощью com.jcraft.jsch.ChannelSftp.put(String src, String dst, SftpProgressMonitor monitor)

Я обнаружил, что даже процесс загрузки не завершен, если не произошло исключения, программа продолжит работу. Например, отправьте клиенту сообщение о том, что файл уже загружен на сервер. Но файл все еще загружается, если клиент попытается чтобы получить файл немедленно, файл является пустым файлом или несогласованным файлом.

Как приостановить основную программу при загрузке файла и возобновить ее после завершения загрузки?


person mojiayi    schedule 24.05.2013    source источник


Ответы (1)


ChannelSftp от JSch выполняет фактическую передачу файлов в фоновом потоке, если вы используете этот put метод. Это делается для того, чтобы ваша программа могла выполнять другие действия во время этого или даже использовать канал для загрузки или скачивания других материалов.

Объект монитор хода выполнения, который вы передали будет проинформирован о ходе и конце загрузки или загрузки. Используйте это, чтобы знать, когда это будет сделано, или когда вы можете делать другие вещи с файлом.

person Paŭlo Ebermann    schedule 01.06.2013