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?
解决方案
A core SFTP protocol does not support duplicating a remote file.
There's draft of copy-file extension to the protocol, but that's supported by only few SFTP servers (ProFTPD/mod_sftp and Bitvise SFTP server for example).
The JSch library does not support the copy-file extension either.
Alternatives:
If you have a shell access, open an "exec" channel, and use shell cp command (or equivalent command for your server's OS).
See Exec.java example.
Otherwise, your only option is to download the file to a local temporary location and upload its copy back to a different/target remote directory. Or use streams, to avoid a temporary file.