sto scrivendo il seguente (con Scala 2.10 e Java 6):directory ricorsivamente Elimina a Scala
import java.io._
def delete(file: File) {
if (file.isDirectory)
Option(file.listFiles).map(_.toList).getOrElse(Nil).foreach(delete(_))
file.delete
}
Come ti migliorarlo? Il codice sembra funzionare ma ignora il valore restituito di java.io.File.delete
. Può essere più semplice con scala.io
anziché java.io
?
Personalmente, sento che per comprensioni sono molto più facili da leggere: 'for (list <- Opzione (file.listFiles()); bambini <- list) delete (child) ' –
Che senso ha creare questa opzione e mapparla? Cosa c'è di sbagliato con semplice "file.listFiles.foreach (cancella)"? –
@ViliusNormantas 'listFiles' può restituire' null' quindi è necessario controllarlo per 'null' o avvolgerlo con' Option'. Inoltre è probabilmente necessario distinguere due casi in bianco e nero: (1) 'listFiles' restituisce una matrice vuota e (2)' listFiles' restituisce null (si è verificato un errore di I/O) – Michael