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

Java - Using JSch but getting an error when trying to move a file on FTP - %RNFR-bad%

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

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%

SFTP error code 3 表示“权限被拒绝”。这意味着您遇到错误,因为您在远程系统上没有执行您尝试执行的文件移动操作的权限。

"%RNFR-bad%"好像没什么意思。我的猜测是远程 SFTP 服务器正在使用 localized messages 并且它没有针对这种情况的正确消息,或者它在其他方面出现故障。