Effacer un fichier du disque dur
Afin de limiter le risque d'erreur, il convient de procéder en premier lieu à des vérifications sur les propriétés du fichier. La class effectue 2 tests avant de supprimer le fichier:file.exists(): est-ce que le fichier à supprimer existe sur le disque dur,
file.canWrite(): est que l'on possède les droits d'écrire dans le fichier.
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Effacer un fichier du disque dur
* http://www.fobec.com/java/987/supprimer-fichier.html
* @author Axel 2010
*/
public class DiskUtils {
public static boolean eraseFile(String filename) throws Exception {
File file = new File(filename);
//Vérifier si le fichier existe
if (!file.exists()) {
throw new Exception("le fichier est introuvable !");
}
//Tester les propriétés et les droits sur le fichier
if (!file.canWrite()) {
throw new Exception("Droit insuffisant pour accéder au fichier");
}
return file.delete();
}
public static void main(String args[]) {
try {
DiskUtils.eraseFile("c://monfichier.txt");
System.out.println("Fichier supprimé");
} catch (Exception ex) {
System.out.println("Erreur: "+ex.getMessage());
Logger.getLogger(DiskUtils.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
L’intérêt d'utiliser une class pour supprimer un fichier est quelle utilise un minimum de test avant d'effacer le fichier sur le disque dur. Il suffit d'un verrou d'une autre application sur la ressource ou des droits trop faible pour que l'on ne puisse pas supprimer directement le fichier.