我正在使用 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 客户端下载文件,检查是否出现相同的行为。
关于java - 下载后 JSch 正在从服务器删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61927244/