Java-使用JSch,但尝试在FTP上移动文件时出错-%RNFR bad%

Java-使用JSch,但尝试在FTP上移动文件时出错-%RNFR bad%,java,sftp,jsch,Java,Sftp,Jsch,我正在尝试使用重命名功能并不断收到此错误。 堆栈跟踪: 3: %RNFR-bad% at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2873) at com.jcraft.jsch.ChannelSftp.rename(ChannelSftp.java:1950) ... 下面是我用来移动文件的方法 private void moveFile(String sourcePath, Stri

我正在尝试使用重命名功能并不断收到此错误。 堆栈跟踪:

3: %RNFR-bad%
    at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2873)
    at com.jcraft.jsch.ChannelSftp.rename(ChannelSftp.java:1950)
    ...
下面是我用来移动文件的方法

private void moveFile(String sourcePath, String destinationPath) {
    try {
        System.out.println("Move: " + sourcePath + " to: " + destinationPath);
        sftp.rename(sourcePath, destinationPath);  //sftp = ChannelSftp
    } catch (SftpException e) {
        e.printStackTrace();
    }
}
以下是我的println的输出:

Move: /SND/OUTBOUND/TestOutboundFile1.txt to: /SND/OUTBOUND/PROCESSING/TestOutboundFile1.txt
我在这里尝试了一些其他的选项(get-then-put、多个连接等),但是仍然会出现相同的错误,或者只是挂起(get-then-put方法就是这样)。我在网上看到的一切都表明,这应该和我的方法一样简单,但我似乎无法让它发挥作用。找不到任何有“RNFR bad”错误的有用信息

目标目录已存在且为空。我错过了什么?非常感谢您的帮助

编辑:这是一个权限问题,在管理员授予我的帐户正确权限后,上面发布的代码工作得非常好。我可以创建和删除文件和目录,但在修改帐户权限之前无法重命名文件

3: %RNFR-bad%
表示“拒绝许可”。这意味着您将收到一个错误,因为您在远程系统上没有权限执行您尝试执行的文件移动操作


“%RNFR bad%”似乎没有什么意义。我的猜测是远程SFTP服务器正在使用,但它没有针对这种情况的正确消息,或者它以其他方式出现故障。

您可以使用任何命令行/GUI SFTP客户端移动文件吗?@MartinPrikryl否,我得到相同的%RNFR bad%错误。好的,那么您就没有编程问题了。请在或处询问。或者更好地得到您的SFTP服务器供应商/提供商的支持。@MartinPrikryl谢谢您的朋友。因为除了移动文件(重命名),我什么都可以做,所以我认为我做错了什么。我甚至没有想过要在我的代码之外尝试。我在这里看到了你关于这个主题的其他问题的评论/答案,再次感谢。我有读/写/删除权限,可以创建和删除目录和文件。其他人控制服务器,我是否需要请求一些特定的东西来实现这一点?