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

Entrée/Sortie Java Discussion :

Problème de suppression de File


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut Problème de suppression de File
    Bonjour, je voudrais supprimer des fichiers temp que je créé mais que delete() n'arrive pas à supprimer. Merci pour toutes vos réponse. 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    if (fichierMatrix.getName().contains(".xls"))
        	{
     
        		File temp = new File(ensemblePourGeneration.getDestination().getParentFile()+File.separator+fichierMatrix.getName()+".txt");
        		FileInputStream fis = null;
     
        		try {
        			fis = new FileInputStream(fichierMatrix.getPath());
        			HSSFWorkbook file = new HSSFWorkbook(new POIFSFileSystem(fis));
        			ExcelExtractor extractor = new ExcelExtractor(file);
     
        			extractor.setFormulasNotResults(true);
        			extractor.setIncludeSheetNames(false);
        			String text = (extractor.getText());
     
        			text=text.replaceAll("\n","\r\n");
     
     
        			FileWriter fw=new FileWriter(temp);
        			fw.write(text);
        			fw.close();
     
     
     
        			System.out.println(fichierMatrix.getConfigFichierMatrix().getBaliseExi());
     
     
        			FichierMatrix fichierMatrixdoc = new FichierMatrix(temp, fichierMatrix.getConfigFichierMatrix());
     
        			//fichierMatrixdoc.FichierMatrix(temp, fichierMatrix.getConfigFichierMatrix());
     
     
        			statusBarMatrix.setLabel(fichierMatrixdoc.toString());
        		      if(!ensembleBalisesAmont.ajoutertableau(fichierMatrixdoc))
        		        return false;
        		      statusBarMatrix.incrementeProgressBar();
     
     
        		} catch (FileNotFoundException file) {
        			// Traitement de l'exception :
        			System.out.println("Ce fichier n'existe pas ou ne peux pas \352tre lut !");
     
        		} catch (IOException file) {
        			// Traitement des autres exceptions de lecture :
        			file.printStackTrace();
     
        		} finally {
        			// Fermeture propre du flux :
     
        				try {fis.close();} 
        				catch (IOException e) {}
     
     
        		}
        		temp.delete();
     
        	}

    Pourtant je ferme bien mon FileWriter... enfin je crois????????

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Hello !

    Si tu peux déjà commencer par mettre plutôt ça dans ton bloc finally :

    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
    finally {
        // fermeture propre des flux :
        if (fw != null) {
            try {fw.close();} 
            catch (IOException e) {}
        }
     
        if (fis != null) {
            try {fis.close();} 
            catch (IOException e) {}
        }
     
        if (!temp.delete())
            System.err.println("impossible de supprimer le fichier :"+temp);
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    je ne compren pas quand je met ceci et que bien sur j'enleve fw.close un peu plus haut dans mon code d'origine, sur la ligne "if (fw != null)" il me dit:
    operator != cannot be applied to fw

    et sur la ligne "try {fw.close();} " il me dit:
    cannot find symbol

    Que dois-je faire. Désoler d'etre trés débutant...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Ah oui je t'ai pas dit.

    Du coup il faut que tu déclares : "FileWriter fw = null" avant le try et que tu enlèves le "fw.close" qui est dans le try.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Désoler pour le retard de la réponse, mais je n'ai accces à internet qu'à certaine heures...

    Le message d'erreur me dit:
    impossible de supprimer le fichier :U:\Testes\Documents entré\TesteExcelAval.xls.txt

    Et mon programme ne fonctionne plus avec cette modification.
    Voila le code(au cas ou je n'ai pas tout compris):
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
        		File temp = new File(ensemblePourGeneration.getDestination().getParentFile()+File.separator+fichierMatrix.getName()+".txt");
        		FileInputStream fis = null;
        		FileWriter fw=null;
     
        		try {
        			fis = new FileInputStream(fichierMatrix.getPath());
        			HSSFWorkbook file = new HSSFWorkbook(new POIFSFileSystem(fis));
        			ExcelExtractor extractor = new ExcelExtractor(file);
     
        			extractor.setFormulasNotResults(true);
        			extractor.setIncludeSheetNames(false);
        			String text = (extractor.getText());
     
        			text=text.replaceAll("\n","\r\n");
     
     
        			fw=new FileWriter(temp);
        			fw.write(text);
        			//fw.close();
     
     
     
        			System.out.println(fichierMatrix.getConfigFichierMatrix().getBaliseExi());
     
     
        			FichierMatrix fichierMatrixdoc = new FichierMatrix(temp, fichierMatrix.getConfigFichierMatrix());
     
        			//fichierMatrixdoc.FichierMatrix(temp, fichierMatrix.getConfigFichierMatrix());
     
     
        			statusBarMatrix.setLabel(fichierMatrixdoc.toString());
        		      if(!ensembleBalisesAmont.ajoutertableau(fichierMatrixdoc))
        		        return false;
        		      statusBarMatrix.incrementeProgressBar();
     
     
        		} catch (FileNotFoundException file) {
        			// Traitement de l'exception :
        			System.out.println("Ce fichier n'existe pas ou ne peux pas être lut !");
     
        		} catch (IOException file) {
        			// Traitement des autres exceptions de lecture :
        			file.printStackTrace();
     
        		} finally {
        		    // fermeture propre des flux :
        		    if (fw != null) {
        		        try {fw.close();} 
        		        catch (IOException e) {}
        		    }
     
        		    if (fis != null) {
        		        try {fis.close();} 
        		        catch (IOException e) {}
        		    }
     
        		    if (!temp.delete())
        		        System.err.println("impossible de supprimer le fichier :"+temp);
        		}
        		//temp.delete();
     
        	}
    cela vient peutetre du nom que je donne à mon fichier (.xls.txt)????
    Je vais essayer d'enlever le .xls

    Merci de me proposer d'autre idées si vous en voyez d'autres.

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Citation Envoyé par charlyfreestyler Voir le message
    mon programme ne fonctionne plus avec cette modification
    Ah bon ?! Comment ça il ne fonctionne plus ! Celà fait exactement la même chose sauf que le flux est fermé un peu plus proprement.

    Citation Envoyé par charlyfreestyler Voir le message
    impossible de supprimer le fichier :U:\Testes\Documents entré\TesteExcelAval.xls.txt
    C'est sur un lecteur réseau windows... aie Tu es sûr au moins que ton fichier existe bien ?

    Essaies d'ajouter ça avant la suppression de ton fichier et de me dire ce que cela donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    System.out.println("le fichier "+temp+" existe = "+temp.exists());
    if (!temp.delete())
    ...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Voila ce qu'il maffiche:

    le fichier \\tech-3-1\profil$\ctoutain\Mes documents\TesteExcelAval.txt existe = true

    Et oui mon fichier éxiste bien et c'est bien là le problême
    Et quant je dit que mon application ne fonctionne plus, je m'éxplique:
    -mon application consiste à comparer deux fichiers Excel et de sortir un tableau des liens entres ces deux fichiers. Et la il me dit qu'il n'a trouvé aucuns liens... Pourtant les fichiers "temp" (qui sont la conversion des .xls) sont conforme ...mais toujours pas supprimé.

    Au faite, j'ai changer le nom de ces fichiers temp en enlevant le .xls ...et rien a changé

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Ma question restera sans réponse????????

    HELP ME PLEASEEEEEEEEEEEE!!!!!

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    J'avoues je sèche un peu là...

    Essaies d'isoler le pb et de faire un test tout simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class Test
    {
        public static void main(String[] args)
        {
            File temp = new File("U:\\Testes\\Documents entré\\TesteExcelAval.xls.txt");
            if (!temp.delete())
                System.err.println("impossible de supprimer le fichier :"+temp);
        }
    }
    Si là ça ne marche pas, il n'y a plus qu'un seul espoir :

    "Au fin fond de l'univers, à des années et des années lumière de la Terre, veille celui que le gouvernement intersidéral appelle, quand il n'est plus capable de trouver une solution à ses problèmes, quand il ne reste plus aucun espoir : le capitaine Flam."

  10. #10
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Ca marcheeeeee!!!!!!

    Ouf!!! Un peu plus et j'devais me taper les frais de vaisseau de l'espace pour le déplacement d'un captain enflammé....

    Quand je vois que cela fonctionne, je vais essayer de sauvegarder tous mes path de fichiers dans un tableau pour ensuite les supprimer via une autre fonction.

    Ca devrai marcher... Je te tiens au courant

  11. #11
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    RRRRrrrrrrr. Ca ne fonctionne pas!!!

    En revanche je crois avoir ciblé le problême: Quand le lance la suppression des fichiers via mon main, le premier fichier se supprime mais pas le second!
    C'est donc que je n'arrive pas à refermer correctement le "temp"... enfin je crois!

    En tous cas merci beaucoup à toi pour tous ces conseils!!!! Au moins ca me fait avancer!! Et puis je connais maintenant le moyen Ultime pour vaincre le code ... ......cap'tain Flam

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 442
    Par défaut
    Citation Envoyé par charlyfreestyler Voir le message
    Quand le lance la suppression des fichiers via mon main, le premier fichier se supprime mais pas le second!
    Gardes ton joker, je crois qu'il va plutôt falloir faire appel à Mulder dans ce cas !

    Ah les joies du win$$$$$ !!!

    Essaies d'afficher la trace quand tu fermes le flux d'écriture dans ton fichier temp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (fw != null) {
        try {fw.close();} 
        catch (IOException e) {
             e.printStackTrace();
        }
    }
    En ce moment j'ai bien un fichier sur un disque dur externe, impossible de le supprimer à partir de mon windows (et il n'est locké par aucun process). Je reboot sous linux, et j'arrive à le supprimer direct !

  13. #13
    Nouveau membre du Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Par défaut
    Désoler pour le super retard de ma réponse.
    J'ai demandé de l'aide à un ami et aprés quelques minutes le problême fut résolut. Il s'agissait en faite d'un problême de flux qui ne se refermait pas dans ma fonction "ajoutertableau". Voila qui laissera un peu de répis a notre amis cap'tain flam.

    Un grand merci à toi pour ton aide (certe vaine, mais bien présente..) Duc lebowski

  14. #14
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2007
    Messages : 340
    Par défaut
    Je me permet d'ajouter quand même une précision, pour les fichiers temporaires leur durée de vie doit être à peu près égale à celle de la durée pendant laquelle l'application on peu faire ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    File tmp = File.createTempFile("nomDuFichier", ".extension");
    tmp.deleteOnExit();
    ce qui crée un fichier temporaire dans le dossier de fichiers temporaires par défaut du système et supprime le fichier créé quand l'application se termine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [File] Problème de suppression
    Par Extaze dans le forum Général Java
    Réponses: 0
    Dernier message: 06/11/2011, 11h23
  2. [ASE 12.5.3] Problème de suppression de bases, devices effacés du file system
    Par lsone dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 12/04/2007, 13h57
  3. Réponses: 3
    Dernier message: 12/04/2007, 13h57
  4. [Excel - VBA] Problème de suppression de lignes...
    Par beholder2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/01/2005, 17h27
  5. Réponses: 4
    Dernier message: 16/04/2004, 08h20

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