我正在使用Apache vfs sftp将文件复制到远程linux框中,然后重命名。
复制工作正常,但是当我尝试重命名文件时,它失败。
我正在使用vfs 2.0和jsch 0.1.50
Source(remoteFileTmp) : /tmp/abc.txt
Destination(remoteFileDest) : /home/myName/work/abc.txt
我使用的命令如下:
remoteFileTmp.moveTo(remoteFileDest);
我得到的异常如下:
Exception in thread "main" java.lang.RuntimeException: org.apache.commons.vfs2.FileSystemException: Could not rename "sftp://hostname/tmp/abc.txt" to "sftp://hostname/home/myName/work/abc.txt".
at com.transfer.SFTPTransfer.uploadRename(SFTPTransfer.java:85)
at com.transfer.MainClass.main(MainClass.java:23)
Caused by: org.apache.commons.vfs2.FileSystemException: Could not rename "sftp://hostname/tmp/abc.txt" to "sftp://hostname/tmp/abc.txt" to "sftp://hostname/home/myName/work/abc.txt".
at org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(AbstractFileObject.java:1116)
at com.transfer.SFTPTransfer.uploadRename(SFTPTransfer.java:59)
... 1 more
Caused by: 4: Failure
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2833)
at com.jcraft.jsch.ChannelSftp.rename(ChannelSftp.java:1910)
at org.apache.commons.vfs2.provider.sftp.SftpFileObject.doRename(SftpFileObject.java:289)
at org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(AbstractFileObject.java:1102)
... 2 more
目录/ home / myName / work存在。
注意:当我尝试移动(重命名)同一文件夹中的文件时,它可以正常工作。
即对于下面的输入重命名是成功的。
source = /tmp/abc.txt
destination = /tmp/abc.txt_renamed
那么它是否仅支持在同一目录中重命名?
最佳答案
这是由通过SFTP进行moveTo时,Apache VFS库中的一个开放问题引起的:-(
https://issues.apache.org/jira/browse/VFS-590
还有这个
https://issues.apache.org/jira/browse/VFS-589