How to move a file on remote FTP server to an directory on same FTP server using Net::FTP in ruby script. I know the file name and I have created a directory using ftp.mkdir but apparently there is no method to move file to the created folder.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Files (& Directories) can be moved using the rename()
method of the Net::FTP
Class. Example:
ftp = Net::FTP.new("ftp.myserver.com","myusername","mypassword")
ftp.binary = true
ftp.passive = true
path1 = "/original/dir/path/" # Dir to move
path2 = "/new/path/" # New path of Dir
ftp.rename(path1, path2)
And that's it! This causes all files to move from one path to another on the same FTP Server.
回答2:
Try rename command. If it doesn't work, you can try the following command: "SITE mv oldpath newpath" . This tells the server to execute the command on the server. The expected behavior won't work on all servers but only on some, so use SITE command only when you are sure that it will work with the particular server.
回答3:
There are putbinaryfile
and puttextfile
instance methods. Is that not enough ? Or if you just want to move in a scope of ftp server, there is rename
method.