我正在通过Jsch上传SFTP的大文件。在上传过程中,旧文件应该可用,因此我上传到临时文件并将其重命名为新文件。
final String tmpName = dest + "_tmp";
channel.put(source, tmpName);
channel.rename(tmpName, dest);
上传没问题,但重命名失败:
ERROR: Failed to upload files
4: Failure
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2491)
at com.jcraft.jsch.ChannelSftp.rename(ChannelSftp.java:1665)
...
我无法弄清楚问题出在哪里。请帮忙
答案 0 :(得分:5)
目标文件已存在。尝试在重命名之前删除现有文件。
答案 1 :(得分:0)
我尝试过重命名,它对我来说很好。还有另一个文件与我相同,我试图将新文件重命名为现有文件。它起作用了。
因此,如果要覆盖,则无需检查文件是否存在。