javasftpjsch

How do I copy files stored in a remote SFTP server to another folder in the same remote server using Java?


I have been trying to copy few selected files (after performing few checks), in a remote server to the same remote server using:

File localFile = new File(srcPath);
sftpChannel.put(localFile.getAbsolutePath(),localFile.getName());

I have even tried to copy those selected files to my local machine using the get() method.

Can somebody help?


Solution

  • A core SFTP protocol does not support duplicating a remote file.

    There's draft of copy-file/copy-data extensions to the protocol. But those are supported by only few SFTP servers. In the most widespread OpenSSH SFTP server it is supported only by very recent version 9.0. Other servers are for example ProFTPD mod_sftp and Bitvise SFTP server.

    The JSch library does not support the extensions.

    Alternatives:

    See also How can I copy/duplicate a file to another directory using SFTP?