Книга: Программирование на языке Ruby

10.1.34. Поиск файлов и каталогов

10.1.34. Поиск файлов и каталогов

Ниже мы воспользовались стандартной библиотекой find.rb для написания метода, который находит один или более файлов и возвращает их список в виде массива. Первый параметр — это начальный каталог, второй — либо имя файла (строка), либо регулярное выражение.

require "find"
def findfiles(dir, name)
 list = []
 Find.find(dir) do |path|
  Find.prune if [".",".."].include? Path
  case name
   when String
    list << path if File.basename(path) == name
   when Regexp
    list << path if File.basename(path) =~ name
   else
    raise ArgumentError
  end
 end
 list
end
findfiles "/home/hal", "toc.txt"
# ["/home/hal/docs/toc.txt", "/home/hal/misc/toc.txt"]
findfiles "/home", /^[a-z]+.doc/
# ["/home/hal/docs/alpha.doc", "/home/guy/guide.doc",
# "/home/bill/help/readme.doc"]

Оглавление книги

Оглавление статьи/книги

Генерация: 2.608. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз