IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Java Discussion :

Exception lors de la suppression de fichier


Sujet :

Java

  1. #1
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut Exception lors de la suppression de fichier


    j'ai un petit pb lors de la suppression de fichier ... en effet lors de l'appel de ma fonction de suppression de repertoire j'ai une execption qui se leve de facon aleatoire et toujours sur les 4 memes fichiers qui sont du meme format que les 500 autres ... je pensais que c'etait a cause de la longueur du nom des fichiers mais je l ai raccourci et c 'est toujours pareil l 'exeption se leve on va dire 1 fois sur 3....

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
        public static void recursifDelete(File path) throws IOException {
           if (!path.exists()) throw new IOException(
              "File not found '" + path.getAbsolutePath() + "'");
           if (path.isDirectory()) {
              File[] children = path.listFiles();
              for (int i=0; children != null && i<children.length; i++)
                 recursifDelete(children[i]);
              if (!path.delete()) throw new IOException(
                 "No delete path '" + path.getAbsolutePath() + "'");
           }
           else if (!path.delete()) throw new IOException(
              "No delete file '" + path.getAbsolutePath() + "'");
        }


    et voila :

    java.io.IOException: No delete file 'Z:\SAPHIRworkSpace\SAPHIR\Livrable\XML\EHNJ_PiloteSondesCpu_Config.xml'



    Mais que se passe t il ?
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  2. #2
    Membre actif Avatar de Sebou77
    Inscrit en
    Mars 2006
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2006
    Messages : 212
    Points : 223
    Points
    223
    Par défaut
    Tu es sur d'avoir les droits suffisant pour supprimer ce fichier ?

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Est-ce que plusieurs Thread accèdent à ta méthode ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui normalement j ai les droits ...

    en fait je copy plein de XML dans un repertoire ... je les utilise .. et apres je les supprime ... et la 1 fois sur 3 (environ) ca me met cette exception .

    il n y as pas plusieurs thread et je pense avoir les droits.
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  5. #5
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Est-ce que d'autres threads peuvent écrire dans ces fichiers?

  6. #6
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Tu as peut-être mal fermé un flux sur un fichier, as-tu fermé tes flux même en cas d'exceptions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    try{
    }
    catch(IOException e){
    }
    finally{
        flux.close();
    }

  7. #7
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    En fait je ne touche pas au flux .. ou alors sans le savoir

    voila comment j appele ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        File del = new File(Chemin);
        DelRep deleter=new DelRep();
        try {
        	deleter.recursifDelete(del);
        	System.out.println("");
        	System.out.println("Suppression des fichiers XML temporaires");
        } catch (IOException e) {
        	e.printStackTrace();
        }
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  8. #8
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Tu as dis que tu utilisais ces fichiers XML, c'est donc que tu les lis ou écris, quand je parle des flux ce sont les objets qui te permettent de faire ces actions, tels que les FileReader, FileWriter, FileOutputStream, etc...il faut bien appeler leur méthode close() pour libérer les fichiers.

  9. #9
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Malheureusement l'API de la classe File n'est pas des meilleures car l'absence de message d'exception concret fait qu'il n'est pas possible de déterminer l'origine du problème

    Dans ton cas la non-suppression du fichier peut avoir plusieurs causes, que ce soit un problème de droits ou puisque tu es sous Windows le simple fait que le fichier soit ouvert en lecture (par ton application ou une autre application).

    a++

  10. #10
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    une fois que j'ai creer les fichiers xml je les utilise pour la creation de fichier HTML ... le code est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    	String xmlCdT = new String();
     
    		xmlCdT=xml.replace("evtp_", "evtp_CdT");
     
    		// Creation de la source DOM
    		DocumentBuilderFactory fabriqueD = DocumentBuilderFactory.newInstance();
    		DocumentBuilder constructeur = fabriqueD.newDocumentBuilder();
    		File fileXml = new File(xml);
    		Document document = constructeur.parse(fileXml);
     
            Source source = new DOMSource(document);
            // Creation du fichier de sortie
            Result resultat = new StreamResult(html);
     
            // Configuration du transformer
            TransformerFactory fabriqueT = TransformerFactory.newInstance();
            StreamSource stylesource = new StreamSource(xsl);
            Transformer transformer = fabriqueT.newTransformer(stylesource);
            transformer.setOutputProperty(OutputKeys.METHOD, "html");
     
            // Transformation
            transformer.transform(source, resultat);
    et ensuite je les supprime donc je pense que le pb doit etre la


    mais ce qui est quand meme bizarre c'est que je fais ca pour des centaines de fichiers et que ca "exceptionne" toujours sur les 4 memes ....
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  11. #11
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    soit !

    j'ai moi-même était victime hier d'une erreur aléatoire de sous couche ! Et si tu es sur que tes fichiers ne sont pas en lecture, et si vraiment il n'y a pas de différence avec les centaines d'autres... ben c'est peut être le même cas

    god bless u
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  12. #12
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui ca fait chier surtout que je suis accro a la perfection aka 0 all aka 0 error 0 warning 0 exception ... et donc la jojo tu t imagine dans quel etat me met cette exception aleatoire .....
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  13. #13
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    mon code du message #10 est bon ?? par rapport au flux morph ...
    hein morph tu es la .... ?


    .....


    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  14. #14
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    Citation Envoyé par laurentibus Voir le message
    je suis accro a la perfection aka 0 all aka 0 error 0 warning 0 exception ...
    je sais bien, n'oubli pas qui t'a tout appris

    pour ce qui ets du code #10 ça à l'air correct et ça n'explique en tout cas pas ton erreur
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  15. #15
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Je ne connais pas du tout les Transformer ni les StreamSource, mais je ne vois pas de méthode close() dans leur javadoc, donc j'imagine que c'est fait automatiquement, désolé mais je ne pourrai pas t'aider beaucoup plus.

  16. #16
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui j avais regarder les méthodes aussi ....... et je peux rien fermer donc je v allez ouvrir la fenêtre et sauter ......
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  17. #17
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    Si quelqu un a une idée ( même dans 10 jours ) je suis toujours preneur car l'exception se leve toujours de façon aléatoire ...
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

  18. #18
    Membre extrêmement actif Avatar de jojodu31
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 814
    Points
    814
    Par défaut
    ça n'a pas marché ce que je t ai envoyé en MP ??
    Heureux soient les fêlés, car ils laisseront passer la lumière.

    Mieux vaut fermer sa gueule et passer pour un con que l'ouvrir et ne laisser aucun doute à ce sujet.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  19. #19
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    non j'ai toujours la même exception de m****
    ... un flash ... et ça repart

    700R ... catch me if u can

    Best regards,
    .

Discussions similaires

  1. Réponses: 5
    Dernier message: 31/03/2011, 11h07
  2. Problème lors d'une suppression de fichier
    Par bibiGN dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/05/2009, 09h23
  3. Erreur lors de la suppression du fichier
    Par kynri dans le forum C
    Réponses: 5
    Dernier message: 19/01/2008, 15h03
  4. Msg erreur lors de la suppression d'un fichier
    Par saidiweb dans le forum Windows XP
    Réponses: 3
    Dernier message: 20/05/2007, 17h02
  5. Réponses: 2
    Dernier message: 29/05/2006, 09h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo