Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在一次操作中移动SFTP位置中的多个文件_Java_Sftp_Jsch_Mv - Fatal编程技术网

Java 在一次操作中移动SFTP位置中的多个文件

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

我必须将多个文件从SFTP位置的文件夹A移动到文件夹B。我正在使用java中的Jsch库。目前,我的实现通过调用下面定义的方法move逐个执行

我们是否可以一次性传输它,因为我已经有了所有的源文件路径-这将比来回的多IO通信更有效

    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连接

半年前我给你的建议已经在我对你的回答中了,你甚至都懒得回答