Archivo de lista Ruby en carpeta

Stewart Nguyen 21 junio 2023 Ruby Ruby File
  1. Crear una carpeta de muestra
  2. Use Dir::[] para listar todos los archivos en una carpeta
  3. Use Dir.glob para enumerar todos los archivos en una carpeta
Archivo de lista Ruby en carpeta

Este artículo presentará diferentes formas de enumerar todos los archivos en una carpeta particular en Ruby.

Crear una carpeta de muestra

Utilice estas líneas de comando para crear una estructura de carpetas en su directorio actual.

mkdir parent_folder
touch parent_folder/music_1.txt
touch parent_folder/music_2.txt

mkdir parent_folder/child_folder
touch parent_folder/child_folder/doc_1.txt
touch parent_folder/child_folder/doc_2.txt

Use Dir::[] para listar todos los archivos en una carpeta

Utilice Dir[<ruta_a_la_carpeta>/*], devuelve una matriz que contiene todos los nombres de archivos y carpetas dentro de ruta_a_la_carpeta.

Después, usaremos el File.file? método para seleccionar los nombres de archivo del resultado.

Ejemplo:

files = Dir['parent_folder/*'].select { |path| File.file?(path) }
puts files

Producción :

parent_folder/music_1.txt
parent_folder/music_2.txt

Para listar archivos recursivamente dentro de una subcarpeta, podemos aplicar este patrón:

files = Dir['parent_folder/**/*'].select { |path| File.file?(path) }
puts files

Producción :

parent_folder/music_1.txt
parent_folder/music_2.txt
parent_folder/child_folder/doc_2.txt
parent_folder/child_folder/doc_1.txt

Use Dir.glob para enumerar todos los archivos en una carpeta

Llamar a Dir.glob es equivalente a llamar a Dir[<ruta_a_la_carpeta>].

Ejemplo:

files = Dir.glob('parent_folder/**/*').select { |path| File.file?(path) }
puts files

Producción :

parent_folder/music_1.txt
parent_folder/music_2.txt
parent_folder/child_folder/doc_2.txt
parent_folder/child_folder/doc_1.txt
¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete

Artículo relacionado - Ruby File