2015-11-03 338 views
1

我使用Apache FTPClient。我是在cp -p之類的文件夾中做文件的副本,但是來自Java。我如何使用'sendCommand'方法做到這一點,還是可以用其他方式? rename方法移動文件但不保留備份副本。在Java中通過FTP協議複製遠程文件(使用sendCommand將cp -p發送到Linux)

+0

可能的重複[標準簡潔的方式來複制文件在Java?](http://stackoverflow.com/questions/106770/standard-concise-way-to-copy-a-file-in-java) –

回答

2

沒有通過FTP協議複製遠程文件的標準方法。一些FTP服務器支持專有或非標準擴展。


因此,如果你很幸運,你的服務器的ProFTPD與mod_copy module,您可以使用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


如果沒有這個工程,你所能做的就是將文件下載到本地臨時位置並重新上傳回的目標位置。請參閱FTP copy a file to another place in same FTP

相關問題