Estoy tratando de enumerar recursivamente todos los archivos que coinciden con un tipo de archivo en particular en Groovy. This example casi lo hace. Sin embargo, no enumera los archivos en la carpeta raíz. ¿Hay alguna manera de modificar esto para mostrar los archivos en la carpeta raíz? O, ¿hay una forma diferente de hacerlo?Listado recursivo de todos los archivos que coinciden con un cierto tipo de archivo en Groovy
29
A
Respuesta
69
Esto debería resolver su problema:
import static groovy.io.FileType.FILES
new File('.').eachFileRecurse(FILES) {
if(it.name.endsWith('.groovy')) {
println it
}
}
eachFileRecurse
toma un tipo de archivo de enumeración que especifica que sólo está interesado en los archivos. El resto del problema se resuelve fácilmente filtrando el nombre del archivo. Puede valer la pena mencionar que eachFileRecurse
normalmente recurre sobre ambos archivos y carpetas, mientras que eachDirRecurse
solo encuentra carpetas.
3
reemplace eachDirRecurse
por eachFileRecurse
y debería funcionar.
3
// Define closure
def result
findTxtFileClos = {
it.eachDir(findTxtFileClos);
it.eachFileMatch(~/.*.txt/) {file ->
result += "${file.absolutePath}\n"
}
}
// Apply closure
findTxtFileClos(new File("."))
println result
7
versión 2.4.7 maravilloso:
new File(pathToFolder).traverse(type: groovy.io.FileType.FILES) { it ->
println it
}
también se puede agregar el filtro como
new File(parentPath).traverse(type: groovy.io.FileType.FILES, nameFilter: ~/patternRegex/) { it ->
println it
}
Cuestiones relacionadas
- 1. incluir sólo los archivos que coinciden con un patrón dado en un diff recursivo
- 2. Listado recursivo de directorios usando Ruby con caracteres chinos en los nombres de archivo
- 3. Globing con ls para encontrar todos los archivos que coinciden con un determinado patrón
- 4. Listado recursivo de directorios en dos
- 5. Cómo recorrer los archivos que coinciden con el comodín en el archivo de proceso por lotes
- 6. GIT: Quiero unstage todos los archivos que coinciden con un patrón determinado
- 7. ¿Los archivos de la lista no coinciden con un patrón?
- 8. Buscar asignaciones que modifican nombres de archivos que coinciden con un patrón en un repositorio GIT
- 9. Regex para seleccionar todos los archivos .c, excepto los que tienen un cierto prefijo
- 10. Lista de todos los archivos que no coinciden con el selector (usando ls)
- 11. ¿Cómo encontrar todos los archivos en el directorio actual con nombres de archivos que coinciden con un patrón determinado en python?
- 12. ¿Cómo puedo eliminar archivos que no coinciden con un comodín?
- 13. git: ¿Cómo puedo agregar recursivamente todos los archivos en un subárbol de directorio que coinciden con un patrón global?
- 14. Buscar todos los nodos que tengan un atributo que coincida con un cierto valor con scala
- 15. Listado de todos los certificados instalados en android
- 16. ¿Cómo puedo crear un archivo index.html simple que enumera todos los archivos/directorios?
- 17. Listado de archivos en un directorio que coincida con un patrón en Java
- 18. Looping sobre archivos que coinciden con el comodín en CMake
- 19. ¿Cómo recupero todos los nombres de archivos en un directorio?
- 20. ¿Cómo elimino todas las líneas que coinciden con un patrón de un conjunto de archivos?
- 21. Información de listado sobre todos los archivos de base de datos en SQL Server
- 22. Obtener una lista de todos los archivos en un directorio (recursivo)
- 23. ¿Cómo le digo a MacVim que siempre use cierto resaltado de sintaxis con cierto tipo de archivo?
- 24. agregar recursivamente la extensión de archivo a todos los archivos
- 25. Clases de listado en un archivo jar
- 26. Archivos ocultos de borrado recursivo
- 27. SQL Listado de todos los nombres de columna alfabéticamente
- 28. Buscar en una carpeta y en todas sus subcarpetas archivos de cierto tipo
- 29. ¿Cómo enumero todos los archivos tga en un directorio (no recursivo) en Python?
- 30. En Python, ¿cómo enumerar todos los caracteres que coinciden con la expresión extendida de POSIX `[: space:]`?
que el fragmento se encuentra el mismo archivo varias veces. Para que funcione, deberá usar eachDirRecurse en su lugar y para cada dir use dir.eachFileMatch para buscar los archivos en el directorio. Verifique mi solución para otra forma de resolver el problema. – xlson
nuevo enfoque ... –