2013-03-13 21 views
9

Uzak FTP sunucusundaki bir dosyayı, FTP'de Net :: FTP kullanarak aynı FTP sunucusundaki bir dizine nasıl taşınır senaryo. Dosya adını biliyorum ve ftp.mkdir kullanarak bir dizin oluşturduk ama görünüşe göre dosyayı oluşturulan klasöre taşımak için bir yöntem yok.Uzak FTP sunucusundaki bir dosyayı, aynı FTP sunucusundaki bir dizine ruby ​​komut dosyasındaki Net :: FTP kullanarak taşıma nasıl yapılır

+1

Buraya bakın: http://stackoverflow.com/a/17351238/1533054 – Sheharyar

cevap

0

putbinaryfile ve puttextfile örnek yöntemleri vardır. Bu yeterli değil mi? Veya sadece ftp sunucusunun bir alanında hareket etmek istiyorsanız, rename yöntemi vardır.

+0

Yalnızca ftp sunucusu kapsamında taşımak istiyorum. Kullanım durumu, inProcess adlı klasörlerde olacak ve dosyaların izlenmesini ve işlenmesini sağlayacak şekilde işlenecektir. –

1

Yeniden adlandır komutunu deneyin. Eğer işe yaramazsa, şu komutu deneyebilirsiniz: "SITE mv oldpath newpath". Bu, sunucunun sunucudaki komutu çalıştırmasını söyler. Beklenen davranış, tüm sunucularda çalışmayacaktır, ancak yalnızca bazılarında, bu nedenle SITE komutunu yalnızca belirli bir sunucuyla çalışacağından eminseniz kullanın.

+0

Ya, ben bu ftp.sendcmd ("SITE mv # {f} inProcess/# {f}") gibi denedim. Çalışmıyor .... HATA: 500 Bilinmeyen SITE komutu veriyor. –

+0

@ user2164844 Daha sonra sunucu ya SITE'yi desteklemiyor ya da SITE üzerinden kabuk komutlarını desteklemiyor. Ardından tek alternatif yeniden adlandır (eğer işe yararsa) –

9

Dosyalar (& Dizinler) Net::FTP Sınıfının rename() yöntemi kullanılarak taşınabilir. Örnek:

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) 

Ve işte bu! Bu, tüm dosyaların aynı FTP Sunucusu üzerinde bir yoldan diğerine geçmesine neden olur.

+0

Öncelikli '/' niçin gerekli olduğunu biliyor musunuz? – shevy

+0

Onlar değil. Ama daha sonra karışıklığı önlemek için 'mutlak yolları' kullanmayı seviyorum. – Sheharyar