Java 在一次操作中移动SFTP位置中的多个文件
我必须将多个文件从SFTP位置的文件夹A移动到文件夹B。我正在使用java中的Jsch库。目前,我的实现通过调用下面定义的方法move逐个执行 我们是否可以一次性传输它,因为我已经有了所有的源文件路径-这将比来回的多IO通信更有效Java 在一次操作中移动SFTP位置中的多个文件,java,sftp,jsch,mv,Java,Sftp,Jsch,Mv,我必须将多个文件从SFTP位置的文件夹A移动到文件夹B。我正在使用java中的Jsch库。目前,我的实现通过调用下面定义的方法move逐个执行 我们是否可以一次性传输它,因为我已经有了所有的源文件路径-这将比来回的多IO通信更有效 public default boolean move(String srcPath, String destPath) throws JSchException, SftpException { ChannelSftp channel
public default boolean move(String srcPath, String destPath) throws JSchException, SftpException
{
ChannelSftp channelSftp = getChannel();
if (channelSftp == null)
throw new SftpException(0, "Service: ChannelSftp is NULL");
channelSftp.rename(srcPath, destPath);
disconnect(channelSftp);
return true;
}
public default void disconnect(ChannelSftp channelSftp) throws JSchException
{
channelSftp.disconnect();
Session session = channelSftp.getSession();
if(session != null)
session.disconnect();
}
SFTP协议中没有批处理移动操作。所以没有办法实现你的要求
但是您应该重用
通道sftp
。无需为每个移动请求打开和关闭它。实际上,您甚至可以为每个请求打开/关闭整个SFTP连接
半年前我给你的建议已经在我对你的回答中了,你甚至都懒得回答