我正在使用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()
)之后,它正在从服务器中删除文件,这是我不想要的。我需要复制粘贴文件而不是剪切粘贴文件。
答案 0 :(得分:0)
JSch ChannelSftp.get
不会从服务器删除文件。
如果该文件被删除,则它必须是服务器的功能,它会删除所有已下载的文件。尝试使用GUI /命令行SFTP客户端下载文件,以检查是否具有相同的行为。