在Java中使用SFTP,如何将文件从一个文件夹传输到另一个文件夹?

我有一个带有两个文件夹的简单目录 –

在此处输入图像描述

SFTP_1文件夹中,我有一个位图图像。 而SFTP_2文件夹只是一个空文件夹。

Java是否有要使用的本机SFTP库? 当我搜索时,我只在网上找到了一个名为JSch的图书馆

我将如何开始运行此示例? 任何提示赞赏,谢谢!

Java中没有本机SFTP支持。

您找到的JSch库可能是Java中使用最广泛的SFTP实现。


如果要使用JSch将文件从SFTP_1移动到SFTP_2 ,请使用ChannelSftp.rename方法 :

 channelSftp.rename("/SFTP_1/file.txt", "/SFTP_2/file.txt"); 

如果要复制文件,则更复杂。 虽然有SFTP协议的copy-file扩展名 ,但只有少数SFTP服务器支持它。 它也不受JSch库的支持。

因此,最后,您唯一的选择可能是将文件下载到本地临时文件夹并将其上传回新位置。 或者使用shell会话来调用像cp这样的命令。 也可以看看

  • 如何使用Java SFTP Library JSch将文件从一个目录传输到另一个目录?
  • 如何使用JAVA将存储在远程服务器中的文件复制到1)同一远程服务器中的另一个文件夹2)在所需位置的本地

SFTP支持RenameFile和CopyRemoteFile操作,但仅在内存服务时才从SFTP协议版本5或6开始。 我们的产品SecureBlackbox(Java版)支持这些操作,但是必须确保您的服务器支持所需的SFTP版本,从而支持您需要的文件操作。