我使用的是Apache FTPClient
。我是像cp -p
一样在文件夹中复制文件,但是来自Java。我怎么能用'sendCommand'方法做到这一点,还是可以用其他任何方式? rename
方法移动文件但不保留备份副本。
没有通过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中显示。
如果这两种方法都不起作用,您只能将文件下载到本地临时位置并将其重新上传回目标位置。
也可以看看: