Как перечислить удаленный путь с JSCH (SFTP) в Android

Создать sftp-клиент с Java стало действительно легко, используя АКХ Библиотека.

JSch — это чистая Java-реализация SSH2 (мы можем использовать канал SFTP). JSch позволяет вам подключаться к серверу sshd и использовать переадресацию портов, пересылку X11, передачу файлов и т. Д., И вы можете интегрировать его функциональность в свои собственные программы Java. JSch лицензируется под лицензией в стиле BSD.

Вы можете использовать следующий код для извлечения содержимого удаленного пути (списка), чтобы показать пользователю

// Remember use the required imports (the library as well) using :
import com.jcraft.jsch.*;
import com.jcraft.jsch.ChannelSftp.LsEntry;
/// then in our function
try {
JSch ssh = new JSch();
Session session = ssh.getSession("username", "myip90000.ordomain.com", 22);
// Remember that this is just for testing and we need a quick access, you can add an identity and known_hosts file to prevent
// Man In the Middle attacks
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.setPassword("Passw0rd");
session.connect();
Channel channel = session.openChannel("sftp");
channel.connect();
ChannelSftp sftp = (ChannelSftp) channel;
// Now that we have a channel, go to a directory first if we want .. you can give to the ls the path
// sftp.cd("/var/www/mydirectory");
@SuppressWarnings("unchecked")
// Get the content of the actual path using ls instruction or use the previous string of the cd instruction
java.util.Vector flLst = sftp.ls("/var/www/mydirectory");
final int i = flLst.size();
// show the info of every folder/file in the console
for(int j = 0; j

Функция ls поможет вам, она вернет LsEntry с информацией о пути, а затем вы сможете легко получить содержимое каждой записи.

Помните, что в качестве примера это не относится к безопасности. Вам необходимо добавить известные файлы хостов, если ваш сервер использует их, или добавить идентификацию, если ваш сервер использует закрытый ключ для аутентификации.

Этот код работает на любой платформе, которая использует Java и JSCH Library (Android, рабочий стол и т. Д.).

Ссылка на основную публикацию
Adblock
detector