¿Cómo obtengo la lista de archivos (o todos los archivos * .txt por ejemplo) en un directorio en Scala. La clase de origen no parece ayudar.Leyendo archivos desde un directorio en Scala
Respuesta
new java.io.File(dirName).listFiles.filter(_.getName.endsWith(".txt"))
Por ahora, debe usar las bibliotecas de Java para hacerlo.
La clase de archivos Java es realmente todo lo que necesita, aunque es bastante fácil de añadir un poco de bondad Scala de iteración sobre directorios más fácil.
import scala.collection.JavaConversions._
for(file <- myDirectory.listFiles if file.getName endsWith ".txt"){
// process the file
}
La versión JDK7, el uso de la nueva clase DirectoryStream es:
import java.nio.file.{Files, Path}
Files.newDirectoryStream(path)
.filter(_.getFileName.toString.endsWith(".txt"))
.map(_.toAbsolutePath)
En lugar de una cadena, este devuelve una ruta, que tiene un montón de métodos prácticos sobre ella, como 'relativizar' y " subpath '.
Tenga en cuenta que también necesitará importar import scala.collection.JavaConversions._
para habilitar la interoperabilidad con colecciones de Java.
+1 para usar java.nio – jasonoriordan
No sé si esto ha funcionado en versiones anteriores, pero ahora obtengo el error 'value map no es miembro de java.nio.file.DirectoryStream [java.nio.file. Ruta] ' – rumtscho
Obtengo ese mismo error usando Java 8 –
- 1. Copia de archivos desde un directorio en un directorio existente
- 2. Leyendo el archivo desde el directorio de activos throws FileNotFoundException
- 3. Leyendo gmail desde C#
- 4. Leyendo Javascript Cookies desde un subdominio
- 5. Leyendo JSON desde un archivo de texto
- 6. leyendo archivos csv en ssl con R
- 7. Muchos archivos en un directorio?
- 8. Acceso a archivos FTP desde Scala
- 9. Leyendo archivos en un orden particular en python
- 10. Cómo copiar varios archivos desde un directorio diferente usando cp?
- 11. Leyendo archivos desde un archivo ZIP en su carpeta de activos Android
- 12. Script Scala para copiar archivos
- 13. leyendo archivos de palabras en C#
- 14. Leyendo datos de archivos PDF en R
- 15. Agregar archivos WSDL desde el directorio de archivos
- 16. Leyendo desde un dispositivo USB y enviándole consultas, en C#
- 17. ¿Cómo leer desde archivos xml comprimidos en código Scala?
- 18. Leyendo un archivo .pdb
- 19. JQuery.getJSON() leyendo un archivo local
- 20. Cómo obtener archivos en las subcarpetas también desde el directorio
- 21. Mover archivos a un directorio
- 22. Cambiando el directorio de fuentes de Scala en SBT
- 23. Analizando/leyendo archivos C-Header usando Java
- 24. OutOfMemory cuando lista archivos en un directorio
- 25. Necesito combinar muchos archivos en un directorio
- 26. ¿Cómo atravesar los archivos en un directorio?
- 27. Regex para archivos en un directorio
- 28. Múltiples subprocesos leyendo desde el mismo archivo
- 29. Navegador leyendo HTML desde la entrada estándar
- 30. Ejecutando comandos de shell desde Scala REPL
Traté de editar dos pequeños errores tipográficos, pero como son solo dos caracteres, no me lo permitieron. El nombre del paquete es 'collection', y le falta un paréntesis de cierre en su' for'. – Eduardo