2011-05-31 13 views
7

मैं रूबी का उपयोग करके ftp से सभी फ़ाइलों को खोजने और प्राप्त करने के लिए निम्न कोड का उपयोग कर रहा हूं।रूबी नेट :: एफ़टीपी, ftp.list से फ़ाइल नाम निकालें()

files = ftp.list() 

files.each do |file| 
    ftp.gettextfile(file) 
end 

समस्या यह है कि ftp.list जानकारी की एक पूरी पंक्ति देता है, न केवल फ़ाइल नाम

-rw-r--r-- 1 ftp ftp    0 May 31 11:18 brett.txt 

मैं इस स्ट्रिंग से फ़ाइल नाम कैसे निकालूं?

बहुत धन्यवाद

+0

हल की तरह nlst सार्वजनिक विधि का उपयोग कर सकते हैं। आह मुझे केवल फाइलनाम प्राप्त करने के लिए ftp.nlist() का उपयोग करना चाहिए। – Brettski

+1

ftp.nlst, ftp.nlist नहीं। –

उत्तर

-2

हालांकि, list, उपयोगी होने के लिए के रूप में आप एक मिलान पैटर्न में पारित कर सकते हैं, यह उस nlst का समर्थन करता है प्रकट नहीं होता है जो दिखाई देता है। मैं सिर्फ सूची उत्पादन काम करने के लिए एक त्वरित और गंदा हैक किया:

ftp.list("*.zip") do |zipfile| 
    zipfile = zipfile.split(/\s+/).last 
    # ... do something with the file 
end 
+0

'nlst' पैटर्न का भी समर्थन करता है ... – severin

0

आप ftp.list आप net-ftp-list उपयोगी लग सकती के उत्पादन में कार्रवाई करने के लिए चाहते हैं।

16

आप इस

files = ftp.nlst("*.zip")|ftp.nlst("*.txt")|ftp.nlst("*.xml") 

#optionally exclude falsely matched files 
exclude = /\.old|temp/ 

#exclude files with 'old' or 'temp' in the name 
files = files.reject{ |e| exclude.match e } #remove files matching the exclude regex 

files.each do |file| 
    #do something with each file here 
end 
संबंधित मुद्दे