Archivo de lista Ruby en carpeta
Stewart Nguyen
21 junio 2023
- Crear una carpeta de muestra
-
Use
Dir::[]
para listar todos los archivos en una carpeta -
Use
Dir.glob
para enumerar todos los archivos en una 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