ce code permet de supprimer une arborescence complete du disque dur en se demarrant dans un nouveau thread !
on le demarre de cette facon :
Thread t = new suppressionHd (new File("c:\\test\\"));
t.start();
Source / Exemple :
//les import pour que cela fonctionne
import java.io.File;
//classe principale qui etend et implements ce dont elle a besoin pour fonctionner
public class suppressionHd extends Thread implements Runnable {
// constructeur qui recoit un File en parametre
public suppressionHd(File Finit) {
// on recupere le parametre
this.Finit = Finit;
// on l'affiche pour le fun ;)
System.out.println("fichier initiale :" + Finit.getName());
}
public void run() {
// on verifie si c'est un repertoire .....
if (Finit.isDirectory()) {
// si s'en est un on liste son contenu
listing = Finit.listFiles();
// si il n'a pas de contenu ...
if (listing.length == 0) {
// ...on supprime le repertoire
Finit.delete();
// on previen l'utilisateur
System.out.println("suppession finni");
}
// sinon tant qu'il y a des sou repertoire ....
while (listing.length > 0) {
// poiur chaque sous repertoire ...
for (int i = 0; i < listing.length; i++) {
// ...on verifie si c'est des fichier ...
if (listing[i].isFile()) {
// ... si ca en est on les supprime
boolean b = listing[i].delete();
// on verifie si tout c'est bien passe
System.out.println("suppession de :" + listing[i] + ":"
+ b);
}
// si c'est un repertoire on demare une methode...
else{
// on demare la methode
dlRep(listing[i]);
}
}
// on met a jour listing ...
listing = Finit.listFiles();
// ... on verifie si il reste des sous repertoire
if (listing.length == 0) {
// si yen a pas on supprime le repertoire de depart
Finit.delete();
System.out.println("suppession finni");
break; // on quite le Thread
}
}
// .....c'est pas un repertoire donc on le supprime directement
} else if (Finit.isFile())
Finit.delete();
this.interrupt(); // on quitte le thread
}
// debut de la methode
private void dlRep(File ToDel) {
// on list le repertoire donner en parametre
File[] listing2 = ToDel.listFiles();
// si il est vide on le supprime
if (listing2.length == 0)
// on le supprime
ToDel.delete();
// et pour chaque objet File liste on ...
for (int i = 0; i < listing2.length; i++) {
// ...verifie si c'est un fichier
if (listing2[i].isFile()) {
// on le supprime et on verifie que c'est bon
boolean b = listing2[i].delete();
System.out.println("suppession de :" + listing2[i] + ":" + b);
}
// sinon c'est un repertoire
else {
// on applique de nouveau la methode sur le repertoire
dlRep(listing2[i]);
}
}
}
// variable
public File[] listing;
public File Finit;
}
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.