Ответ 1
Я предлагаю вам использовать Dir.entries("target_dir")
Проверьте документацию здесь
Я новичок в ruby на рельсах, и я хочу читать имена файлов из указанного каталога. Может ли кто-нибудь предлагать код или любые другие ссылки?
Спасибо
Я предлагаю вам использовать Dir.entries("target_dir")
Проверьте документацию здесь
Если вы хотите получить весь файл под определенной папкой в массиве:
files = Dir.glob("#{Rails.root}/private/**/*")
#=> ["/home/demo/private/sample_test.ods", "/home/demo/private/sample_test_two.ods", "/home/demo/private/sample_test_three.ods", "/home/demo/private/sample_test_one.ods"]
Если вы хотите вытащить отфильтрованный список файлов, вы также можете использовать Dir.glob
:
Dir.glob("*.rb")
# => ["application.rb", "environment.rb"]
вы можете просто получить имена файлов с помощью File.basename(file)
Dir.glob("path").map{ |s| File.basename(s) }
С Rails вы должны использовать Rails.root.join
, его очиститель.
files = Dir.glob(Rails.root.join('path, 'to, 'folder))
Тогда вы получите массив с путями файлов
сначала нужно правильно создать путь к целевой папке
например, когда ваша целевая папка находится в папке "models" в папке "app"
target_folder_path = File.join(Rails.root, "/app/models")
а затем возвращает массив, содержащий все имена файлов
Dir.children(target_folder_path)
также этот код возвращает массив без '.' а также '..'