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

Agents de placement/Fenêtres Java Discussion :

Thread,suppression fichier et JFrame


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut Thread,suppression fichier et JFrame
    bonjour,
    j'ai un problème, avec une fenetre, dont voici la partie du code qui deconne:

    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
     
    if(e.getSource()==bdepot) {
                if(txtnumero2.getText().equals("")||txtdepot.getText().equals("")) {
                    JOptionPane.showMessageDialog (this,"Veuillez entrer le numero de compte et le montant SVP !","Erreur remplissage",JOptionPane.INFORMATION_MESSAGE, null);
                }
                else {
                    String c = txtnumero2.getText();
                    File fichier = new File("c:\\gestioncompte\\clients\\"+c+".txt");
                    if(!fichier.exists())
                       JOptionPane.showMessageDialog (this,"Le compte "+c+" n'existe pas! Veuillez verifier le numero saisi","Erreur compte",JOptionPane.INFORMATION_MESSAGE, null);
                    else {
                        try {
                            double m = Double.parseDouble(txtdepot.getText());
                            FileReader fic = new FileReader(fichier);
                            BufferedReader b = new BufferedReader(fic);
                            String p = b.readLine();
                            String n = b.readLine();
                            double s = Double.parseDouble(b.readLine());
                            double d = Double.parseDouble(b.readLine());
                            long c1 = Long.parseLong(b.readLine());
                            b.close();
                            fic.close();
                            Compte compte = new Compte(p,n,s,d,c1);
                            boolean bool = fichier.delete();
                            if(bool==true){
                                zone.setText("Fichier supprimé");
                                new ThreadCompteDepot("Dépot",compte,m).start();
                            }
                            else
                                JOptionPane.showMessageDialog (this,"Impossible de supprimer"+fichier,"Erreur compte",JOptionPane.INFORMATION_MESSAGE, null);
                        }
                        catch(NumberFormatException lException) {}
                        catch(IOException o) {}
                        if(fichier.exists())
                            JOptionPane.showMessageDialog (this,"Opération Depot reussie","Transaction Compte",JOptionPane.INFORMATION_MESSAGE, null);
                        else
                            JOptionPane.showMessageDialog (this,"Opération Depot non reussie. Contacter l'administrateur systeme","Transaction Compte",JOptionPane.INFORMATION_MESSAGE, null);
                    }
                }

    en fait mon problème est que le bloc " if(bool==true) {...}" ne s'execute pas, c'est à dire le thread ne s'execute pas et le fichier n'est pas supprimé. il passe directement au bloc " if(fichier.exists()) ".
    alors je me demande bien où peut se situer le problème, est ce que c'est pas ainsi qu'on lance un Thread dans un JFrame ou bien c'est l'instruction
    " fichier.delete() ", qui n'est pas juste ?
    quelqu'un peut m'aider s'il vous plait.
    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 130
    Par défaut
    Ton explication ne m'a pas l'air très claire.
    Mais commence déjà par ajouter des myException.printStackTrace() pour voir s'il y n'y a pas d'erreurs.

  3. #3
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    en fait l'instructin fichier.delete(), qui est sencé supprimé un fichier ne marche pas. le fichier n'est pas supprimé il est toujours là.

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    est-que tu est sure qu'aucune application/processus n'utilise ton fichier au moment de le supprimer ?

  5. #5
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    aparament mon post n'es pas trop claire. ok je veux juste savoir:
    1- comment supprimer un fichier texte, car j'ai essayé avec
    File fichier = new File("c:\\doc.txt");
    fichier.delete();
    mais le fichier n'est pas supprimé.

    2- comment interompre un programme en cours d'execution, une instruction genre "break" ?


    voilà je croi que c'est un peu claire là

  6. #6
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    je suis quasiment sur qu'aucun programme ne l'utilise. si tu veux jette un coup d'oeil au code ci-dessus

  7. #7
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    j'ai trouvé comment sortir du programme. c'est l'instruction:

    System.exit(0);

    mais je n'arrive toujours pas à supprimer mon fichier. s'il vous plait si quelqu'un peut jeter un coup d'oeil sur mon code, juste pour me dire pourquoi l'instruction
    " boolean b = fichier.delete(); ", ne supprime pas le fichier, cela m'aidera beaucoup.

    encore merci

  8. #8
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    la méthode delete renvoie false si elle n'a tout simplement pas réussi à supprimer le fichier.

    Celà signifie tout simplement que ce fichier est "occupé", c'est à dire qu'une application est en train de le lire ou de l'éditer.

    Celà peut être une application externe, mais également ton application, en particulier si tu as mal fermé un flux de lecture/écriture sur ton fichier.

    CF ce topic de la FAQ:
    http://java.developpez.com/faq/java/...ererRessources

  9. #9
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    merci sinok pour ton lien. j'ai finelement modifié mon code comme ceci:

    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
     
    try {
    						m = Double.parseDouble(txtdepot.getText());
    						FileReader fic = new FileReader(fichier);
    						BufferedReader b = new BufferedReader(fic);
    						try{
    							p = b.readLine();
    							n = b.readLine();
    							s = Double.parseDouble(b.readLine());
    							d = Double.parseDouble(b.readLine());
    							c1 = Long.parseLong(b.readLine());
    						}
    						finally{
    							b.close();
    							fic.close();
    							compte = new Compte(p,n,s,d,c1);
    							bool = fichier.delete();
    						}
    					}
    					catch(NumberFormatException lException) {}
    					catch(IOException o) {o.printStackTrace();}
    malheureusement le fichier n'est toujours pas supprimé.
    est ce qu'il n y'a pas moyen de savoir quelle application ou quel processus utilise le fichier lors de la tentative de suppression ?
    franchement ça m'enerve ce code

  10. #10
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    essaye de sortir le fichier.delete du block try/finally
    car(je pense)que si l'exeption est declenché tu ne peut pas supprimer le fichier donc
    try{
    ....
    }
    finally{
    ...}
    new compte(...);
    fichier.delete();

  11. #11
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    merci d'essayer de m'aider, mais ça ne marche toujours pas.
    je l'ai fait sortir try/finally et meme du try/catch
    mais toujours rien

  12. #12
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    est-ce que la ligne fichier.delete() est executer ?

  13. #13
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    ben je suppose que oui, tout à l'heure j'ai mis cette ligne
    zonedetexte.setText("message essai");
    juste avant la ligne fichier.delete(), et le message s'est affiché.
    donc je suppose que la ligne est exécutée. a moins bien sur que le fait d'aficher la ligne precedente ne signifi forcement pas que la ligne suivante est executée.

  14. #14
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    tu peut me faire voir l'ensemble de ta methode ?

  15. #15
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    excuse moi pour avoir tardé, voici le bloc du code. je te signale que le "bdepot" c'est un bouton qui permet de faire le depot sur un compte.

    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(e.getSource()==bdepot) {
    			String p = new String(); String n = new String();
    			double s=0; double d=0; double m=0;
    			long c1=0;
    			if(txtnumero2.getText().equals("")||txtdepot.getText().equals("")) {
    				JOptionPane.showMessageDialog (this,"Veuillez entrer le numero de compte et le montant SVP !","Erreur remplissage",JOptionPane.INFORMATION_MESSAGE, null);
    			}
    			else {
    				String c = txtnumero2.getText();
    				File fichier = new File("c:\\gestioncompte\\clients\\"+c+".txt");
    				if(!fichier.exists()) 
    				   JOptionPane.showMessageDialog (this,"Le compte "+c+" n'existe pas! Veuillez verifier le numero saisi","Erreur compte",JOptionPane.INFORMATION_MESSAGE, null);
    				else {
    					try {
    						m = Double.parseDouble(txtdepot.getText());
    						FileReader fic = new FileReader(fichier);
    						BufferedReader b = new BufferedReader(fic);
    						try{
    							p = b.readLine();
    							n = b.readLine();
    							s = Double.parseDouble(b.readLine());
    							d = Double.parseDouble(b.readLine());
    							c1 = Long.parseLong(b.readLine());
    						}
    						finally{
    							b.close();
    							fic.close();
    						}
    						//compte = new Compte(p,n,s,d,c1);
    					//	bool = fichier.delete();
    					}
    					catch(NumberFormatException lException) {}
    					catch(IOException o) {o.printStackTrace();}	
    					compte = new Compte(p,n,s,d,c1);
    					bool = fichier.delete();
    					if(bool==true){
    							zone.setText("Fichier supprimé");
    							th = new ThreadCompteDepot("Dépot",compte,m);
    							th.start();
    						    try {
    						    	th.join();
    						    }
    						    catch(InterruptedException exc) {}
    					}
    					else {
    							JOptionPane.showMessageDialog (this,"Impossible de supprimer"+fichier,"Erreur compte",JOptionPane.INFORMATION_MESSAGE, null);
    					        System.exit(0);
    					}
                        if(fichier.exists())
                        	JOptionPane.showMessageDialog (this,"Opération Depot reussie","Transaction Compte",JOptionPane.INFORMATION_MESSAGE, null);
                        else
                        	JOptionPane.showMessageDialog (this,"Opération Depot non reussie. Contacter l'administrateur systeme","Transaction Compte",JOptionPane.INFORMATION_MESSAGE, null);
    				}
    			}
    		}

  16. #16
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    salut,
    s'il te plait atha2 tu as pu trouvé quelque chose d'anormal sur le code que je t'ai envoyé ?

  17. #17
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    essaye de catcher les FileNotFoundException aussi et affiche toujours la pile lorsque tu traite une exception ça permet d'être sur qu'aucune exception n'est décleché

  18. #18
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    ok, je prend ton conseil en compte et je te remercie ainsi que les autres pour votre aide. toutes fois si tu as du nouveau de ton coté ou si quelqu'un à quelque chose à me proposer, vous pouvez le poster. de mon coté j'essai toujours de chercher si j'ai du nouveau je vous le ferai savoir.
    bien à vous

  19. #19
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    Ouf!!! ça marche now. je n'ai pas modifié mon code, j'ai juste fermé completement eclipse et ensuite je l'ai relancé. et du coup mon code marche, le fichier à été supprimé.
    maintenant je crois que j'ai un petit hic avec mon thread " ThreadCompteDepot "
    que je lance sur la ligne 37 de mon code , j'ai l'impression qu'il ne prend pas en compte les parametres que je lui fourni. bon j'essaie d'y reflechir, si j'ai des soucis je vous fais signe.
    encore milles fois merci pour votre precieuse aide

  20. #20
    Membre averti
    Inscrit en
    Juin 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 26
    Par défaut
    l'appel du thread marche bien, c'est plutot le bloc try/catch(NumberFormatException), du code( ci-dessus), qui ne s'execute pas. et franchement je ne sais pas pourquoi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. suppression fichiers avec access et droits
    Par alexg81 dans le forum Access
    Réponses: 5
    Dernier message: 19/04/2006, 16h31
  2. suppression fichier avec erreur
    Par zeus312 dans le forum C
    Réponses: 5
    Dernier message: 23/02/2006, 12h24
  3. Suppression fichier
    Par lili_bzh dans le forum Linux
    Réponses: 13
    Dernier message: 08/02/2006, 13h39
  4. [VB NET 2005] Suppression Fichier
    Par metallicox dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/11/2005, 16h11
  5. [C#] [FTP] Envoi et suppression fichier sur ftp NON ANONYME!
    Par djsbens dans le forum Windows Forms
    Réponses: 14
    Dernier message: 30/03/2005, 11h20

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