Ответ 1
Далее будут рекурсивно распечатываться все файлы. Затем вы можете использовать File.directory? чтобы узнать, является ли это каталогом или файлом.
Dir['**/*'].each { |f| print f }
Кто-нибудь знает, есть ли существующий модуль/функция внутри Ruby для перемещения каталогов и файлов файловой системы? Я ищу что-то похожее на Python os.walk
. Самый близкий модуль, который я нашел, - Find
, но для выполнения обхода требуется дополнительная работа.
Код Python выглядит следующим образом:
for root, dirs, files in os.walk('.'):
for name in files:
print name
for name in dirs:
print name
Далее будут рекурсивно распечатываться все файлы. Затем вы можете использовать File.directory? чтобы узнать, является ли это каталогом или файлом.
Dir['**/*'].each { |f| print f }
Find кажется мне довольно простым:
require "find"
Find.find('mydir'){|f| puts f}
require 'pathname'
def os_walk(dir)
root = Pathname(dir)
files, dirs = [], []
Pathname(root).find do |path|
unless path == root
dirs << path if path.directory?
files << path if path.file?
end
end
[root, files, dirs]
end
root, files, dirs = os_walk('.')