Suppression d'un dossier

Contenu du snippet

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;
}

A voir également

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.