Java中使用FTP协议复制远程文件(使用sendCommand cp -p到Linux)

问题描述 投票:1回答:1

我使用的是Apache FTPClient。我是像cp -p一样在文件夹中复制文件,但是来自Java。我怎么能用'sendCommand'方法做到这一点,还是可以用其他任何方式? rename方法移动文件但不保留备份副本。

java ftp apache-commons-net
1个回答
2
投票

没有通过FTP协议复制远程文件的标准方法。有些FTP服务器支持专有或非标准扩展。


因此,如果您很幸运,您的服务器是使用mod_copy module的ProFTPD,您可以使用FTP.sendCommand发出以下两个命令:

CPFR sourcepath
CPTO targetpath

第二种可能性是您的服务器允许您执行任意shell命令。这也不常见。如果您的服务器支持此功能,您可以使用SITE EXEC命令:

SITE EXEC cp -p sourcepath targetpath

另一种解决方法是打开与FTP服务器的第二个连接,并通过将被动模式数据连接管道连接到活动模式数据连接,使服务器将文件上载到自身。在PHP中实现此解决方案在FTP copy a file to another place in same FTP中显示。


如果这两种方法都不起作用,您只能将文件下载到本地临时位置并将其重新上传回目标位置。

也可以看看:

© www.soinside.com 2019 - 2024. All rights reserved.