尝试使用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
。