[Ruby] Re: [Ruby] Re: [Ruby] Re[2]: [Ruby] Обход директорий и вытаскивание из них полных путей файлов
SoNaR
sonar at scli.ru
Wed Jun 11 13:12:13 MSD 2003
Hello SoNaR,
Wednesday, June 11, 2003, 1:04:38 PM, you wrote:
S> Hello SoNaR,
S> Wednesday, June 11, 2003, 12:58:29 PM, you wrote:
S>> Hello Sergei,
S>> Wednesday, June 11, 2003, 12:38:13 PM, you wrote:
SO>>> SoNaR wrote:
>>>>Hello ruby,
>>>>
>>>> Есть директория с множеством поддиректорий. Как красиво осуществить
>>>> обход по дереву каталогов и на выходе иметь массив с полными именами
>>>> файлов.
>>>>
>>>>
>>>>
SO>>> 1. man find
SO>>> 2. popen("find ...")
S>> А если в винде и не прибегая к помощи внешних утилит? Только
S>> средствами Ruby?
S> Пока ждал ответа уже сам написал... Не знаю насколько это красиво, но
S> памяти жрет будь здоров.
S> BASE = "z:/DATABASES/Kodweb/update2old"
S> def findFiles( base = BASE)
S> result1 = Array.new
S> Dir.new( base ).each{ |dof| result1 << (base + "/" + dof) if (dof != ".")and(dof != "..") }
S> result2 = Array.new
S> result1.each{ |dof|
S> if File.stat(dof).directory?
S> result2 << findFiles( dof )
S> else
S> result2 << dof
S> end
S> }
S> return result2
S> end
S> p findFiles.flatten
Окончательный красивый вариант.
require "find"
Find.find( BASE ) do |f|
puts f if not File.stat(f).directory?
end
--
Best regards,
SoNaR mailto:sonar at scli.ru
More information about the Ruby
mailing list