Saltar al contenido

Eliminar directorio de forma recursiva en Scala

Agradeceríamos tu apoyo para compartir nuestras crónicas con relación a las ciencias de la computación.

Solución:

Con puro scala + java way

import scala.reflect.io.Directory
import java.io.File

val directory = new Directory(new File("/sampleDirectory"))
directory.deleteRecursively()

deleteRecursively () Devuelve false en el fracaso

Pruebe este código que genera una excepción si falla:

def deleteRecursively(file: File): Unit = 
  if (file.isDirectory) 
    file.listFiles.foreach(deleteRecursively)
  
  if (file.exists && !file.delete) 
    throw new Exception(s"Unable to delete $file.getAbsolutePath")
  

También puede doblar o mapear sobre la eliminación si desea devolver un valor para todas las eliminaciones.

Usando scala IO

import scalax.file.Path

val path = Path.fromString("/tmp/testfile")    
try 
  path.deleteRecursively(continueOnFailure = false) 
 catch 
  case e: IOException => // some file could not be deleted

o mejor, podrías usar un Try

val path: Path = Path ("/tmp/file")
Try(path.deleteRecursively(continueOnFailure = false))

que resultará en un Success[Int] que contiene el número de archivos eliminados, o un Failure[IOException].

Comentarios y puntuaciones del post

Al final de la post puedes encontrar las referencias de otros usuarios, tú además tienes la libertad de dejar el tuyo si te apetece.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *