Come ottenere l'elenco di file (o tutti i file * .txt, ad esempio) in una directory in Scala. La classe Source non sembra aiutare.Lettura di file da una directory in Scala
risposta
new java.io.File(dirName).listFiles.filter(_.getName.endsWith(".txt"))
Per ora, è necessario utilizzare le librerie Java per farlo.
La classe File Java è davvero tutto ciò che serve, anche se è abbastanza facile aggiungere un po 'di bontà Scala di iterazione su directory più facile.
import scala.collection.JavaConversions._
for(file <- myDirectory.listFiles if file.getName endsWith ".txt"){
// process the file
}
La versione JDK7, utilizzando la nuova classe DirectoryStream è:
import java.nio.file.{Files, Path}
Files.newDirectoryStream(path)
.filter(_.getFileName.toString.endsWith(".txt"))
.map(_.toAbsolutePath)
Invece di una stringa, questa restituisce un percorso, che ha un sacco di metodi pratici su di esso, come 'relativizzare' e ' sottotracciato'.
Nota che è anche necessario importare import scala.collection.JavaConversions._
per abilitare l'interoperabilità con le raccolte Java.
+1 per l'utilizzo di java.nio – jasonoriordan
Non so se questo ha funzionato nelle versioni precedenti, ma ora ottengo l'errore 'valore map non è un membro di java.nio.file.DirectoryStream [java.nio.file. Percorso] ' – rumtscho
Viene visualizzato lo stesso errore utilizzando Java 8 –
- 1. Lettura di file mutiple da una directory
- 2. Lettura di file da una directory all'interno di un'app meteorica
- 3. Copiare i file da una directory in una directory esistente
- 4. Leggere una matrice da un file in Scala Breeze
- 5. Lettura del file xml da una risorsa
- 6. lettura file da archivio esterno
- 7. Python: lettura di tutti i file in tutte le directory
- 8. Lettura da file
- 9. Scala file di testo veloce lettura e caricare in memoria
- 10. Modifica directory di sorgenti Scala in SBT
- 11. Selezionare l'ultimo file modificato da una directory
- 12. importare un file da una directory diversa
- 13. Aggiunta di una directory a tomcat classpath e lettura del file di proprietà in primavera
- 14. Leggi l'oggetto classe caso da una stringa in Scala (qualcosa come la classe di lettura "di lettura" di Haskell)
- 15. C# Lettura PCL da file
- 16. C# crea file di lettura/scrittura da sola lettura
- 17. Lettura del file di proprietà dalla directory JAR
- 18. Molti file in una directory?
- 19. Lettura da file o stdin
- 20. Lettura impostazioni da file di configurazione separato
- 21. Elimina file durante la lettura di directory con readdir()
- 22. Lettura da un file gzip in python
- 23. interi lettura da un file in Chuck
- 24. Lettura della password dalla console in Scala
- 25. Lettura da un file app.config
- 26. Lettura file binario da URLConnection
- 27. array associativi lettura da file
- 28. Lettura dell'elenco di riferimenti da file csproj
- 29. fonte tutti i file in una directory da .bash_profile
- 30. Lettura di dati da un file plist
Ho provato a modificare due piccoli errori di battitura, ma dato che sono solo due caratteri, non me lo permetterebbe. Il nome del pacchetto è 'collection', e ti manca una parentesi chiusa nel tuo' for'. – Eduardo