form - Obtener subdirectorios inmediatos en ruby
html slim (4)
Estoy intentando escribir un simple script ruby que copiará un archivo a los subdirectorios inmediatos de un directorio. ¿Cómo obtendría solo los subdirectorios inmediatos?
Probablemente la mejor manera de tratar con archivos en Ruby es Pathname
. Combina métodos de clase de unos pocos módulos basados en archivos en una clase de POO fácil de usar. Por lo tanto, no necesita pasar el valor a un método como lo haría con Dir
o File
, solo puede llamar al método en el objeto en sí.
Aquí está cómo imprimir subdirectorios inmediatos:
require ''pathname''
puts Pathname(''some/directory'').children.select(&:directory?)
Si quiere encontrar todos los subdirectorios inmediatos (solo un nivel debajo de donde se encuentra), intente esto:
Dir.chdir("/some/path/you/want/to/check/below")
subdir_list=Dir["*"].reject{|o| not File.directory?(o)}
Es decir: cambiar el directorio en algún lugar, construir una matriz de archivos que se encuentra allí, rechazar aquellos elementos de la matriz que no son directorios y devolver el conjunto resultante.
Suponiendo que solo deseara los subdirectorios inmediatos , podría usar Dir[''*/'']
(que combina las respuestas de Micheal Sepcot y glenra).
Dir.glob("**/")
devolverá una matriz de todas las rutas debajo del directorio actual. Desde allí puede filtrar la lista y copiar un archivo con File.copy(from, to)