sintax form escape else comment ruby file

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)