Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Impossible d'effacer des fichiers


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Impossible d'effacer des fichiers
    Bonjour,
    Je souhaite utiliser le code suivant plusieurs fois lors d'une même exécution, à l'aide d'une boucle et d'un changement de nom à chaque variable, pour supprimer plusieurs dossier possédant les même fichier
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    File cases = new File ("games/"+nom_partie+"/game_case.txt");
    cases.delete();
    File pawn = new File ("games/"+nom_partie+"/game_pion.txt");
    pawn.delete();
    File infos = new File ("games/"+nom_partie+"/infos.txt");
    infos.delete();
    File dir = new File ("games/"+nom_partie);
    dir.delete();

    Le problème est que, tout se passe bien pour le premier fichier, mais à partir du second les fichiers ne se supprime pas. Je ne comprends pas pk
    Aidez moi svp
    Merci

  2. #2
    Rédacteur

    Hello,

    Tu dis "tout se passe bien pour le premier fichier" ... je pense que tu parles de la boucle et non de game_case.txt dans le répertoire nom_partie.

    Le problème c'est dir.delete().
    Je pense qu'il ne va fonctionner que si le répertoire est vide et qu'il n'y a pas d'autres sortes de fichiers.
    Donc, il faut déterminer tous les fichiers du répertoire et les effacer avant le dir.delete().
    Attention, les répertoires peuvent aussi avoir des sous répertoires.

    C'est facile à tester en créant des fichiers dans un répertoire avec l'explorateur de fichiers.
    Mais il serait aussi possible de refuser d'effacer le répertoire si certains fichiers manquent ou d'autres sont des logs de dysfonctionnement de ton application.
    Regardes la classe FilenameFilter, je l'adore. Je l'ai beaucoup utilisée pour par exemple aussi y ajouter des critères de date.

    Bon travail

  3. #3
    Rédacteur/Modérateur

    Les fichiers peuvent être verrouillés pour x raisons totalement indépendantes de ta volonté (ouvert dans une autre application, dans l'explorateur, etc.). C'est d'ailleurs pour cela que delete() renvoie un booléen que tu es sensé tester pour vérifier que l'effacement s'est bien passé.

    Quant au répertoire, il faut effectivement qu'il soit vide pour pouvoir être effacé donc voir s'il contient d'autres fichiers ou des fichiers cachés mais la encore il ne pourra pas être supprimé s'il est verrouillé par quelques chose d'autre.
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook