尝试使用JShell API重命名文件/文件夹,因为Shell命令会执行它们,因此不起作用。 mkdir和rmdir运行正常。

JDK版本-11。

JSch版本-0.1.55。

任何线索将不胜感激。提前致谢。

使用以下代码。

ChannelExec execChannel = null;
        try {
          execChannel = (ChannelExec) session.openChannel("exec");
          execChannel.connect();
          execChannel.setCommand("rename dir1 dir2");
          execChannel.start();
        } catch (JSchException ex) {
          throw new IOException(ex);
        } finally {
          if (execChannel != null) {
            execChannel.disconnect();
          }
        }


更新:


SFTP服务器托管在CentOS计算机上
mv,ren,重命名-他们都不起作用
我们怎么知道命令不起作用-文件夹名称仍然是旧名称。 execChannel.getExitStatus()也给出-1。没有引发任何错误

最佳答案

如果您使用的是Jsch,我相信远程主机是一个类似Unix的系统。在Unix中没有命令rename。请改用mv

10-08 13:05