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