1. Я могу читать любой каталог, независимо от того, находится ли он внутри него. 2.- Чтобы получить и поместить файлы, всегда убедитесь, что вы находитесь в каталоге, в котором находятся файлы, используя cd.

ользую JSch для получения файла с удаленной машины по SFTP. Вот код

public class TestSFTPinJava {

 public static void main(String args[]) {
        JSch jsch = new JSch();
        Session session = null;
        try {
            session = jsch.getSession("username", "sftp.abc.com", 22);
            session.setConfig("StrictHostKeyChecking", "no");
            session.setPassword("password");
            session.connect();

            Channel channel = session.openChannel("sftp");
            channel.connect();
            ChannelSftp sftpChannel = (ChannelSftp) channel;
            System.out.println("Directory:" + sftpChannel.pwd());
            sftpChannel.cd("remoteDirectory/");
            System.out.println("Directory after cd:" + sftpChannel.pwd());
            sftpChannel.get("remote-data.txt");

            sftpChannel.put("C:\\Users\\mona\\Documents\\local-copy.txt");
            sftpChannel.exit();
            session.disconnect();
        } catch (JSchException e) {
            e.printStackTrace();  
        } catch (SftpException e) {
            e.printStackTrace();
        }
    }
}

Теперь у меня есть два вопроса:

sftpChannel.get("remote-data.txt"); выдает исключение:

файл не найден
в com.jcraft.jsch.ChannelSftp.throwStatusError (ChannelSftp.java:2297)
на com.jcraft.jsch.ChannelSftp._stat (ChannelSftp.java:1750)
на com.jcraft.jsch.ChannelSftp.get (ChannelSftp.java:1020)
на com.jcraft.jsch.ChannelSftp.get (ChannelSftp.java:995)
at TestSFTPinJava.main (TestSFTPinJava.java:29)

Я не уверен, как указать место в моей локальной системе, где файл будет сохранен.sftpChannel.put("C:\\Users\\mona\\Documents\\localCopy.txt"); не выглядит правильно для меня.

Пожалуйста, помогите с предложениями, спасибо!

Ответы на вопрос(3)

Ваш ответ на вопрос