我正在使用Jsch从服务器复制文件。我的代码是:
private ChannelSftp setupJsch() throws JSchException {
log.debug("private key path: " + sftpPrivateKey);
JSch jsch = new JSch();
jsch.setKnownHosts(sftpKnownHost);
jsch.addIdentity(sftpPrivateKey, sftpPrivateKeyPassphrase);
Session jschSession = jsch.getSession(sftpUser, sftpHost, sftpPort);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
jschSession.setConfig(config);
jschSession.connect();
return (ChannelSftp) jschSession.openChannel("sftp");
}
然后
channelSftp = setupJsch();
channelSftp.connect();
channelSftp.cd(fileLocation);
channelSftp.get(scrOnDirectory, desOnLocalSystem);
但是下载后(例如channelSftp.get()
),它正在从服务器中删除文件,我不希望这样做。我需要复制粘贴文件而不是剪切粘贴文件。
JSch ChannelSftp.get
不会从服务器删除文件。
如果文件被删除,它必须是服务器的功能,它将删除所有已下载的文件。尝试使用GUI /命令行SFTP客户端下载文件,以检查是否具有相同的行为。