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 avec File.mkdir()


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut Problème avec File.mkdir()
    Bonjour,
    Je rencontre une difficulté avec la méthode mkdir() de la classe java.io.File.
    J'utilise naturellement une instance de File avec le chemin complet vers mon nouveau dossier, puis je sollicite sa méthode mkdir() si le dossier n'existe pas.
    Le dossier est bien créé, mais il m'est impossible de le supprimer depuis l'explorateur de Windows tant que je n'ai pas quitté mon programme ?!
    Bien que dans ce dernier, l'instance de File utilisée pour créer le dossier n'est plus utilisée, mon programme ne libère pas le dossier qu'il a créé. Je ne comprends pas pourquoi ?
    Donc, encore moins comment éviter cela. En effet, j'aimerai pouvoir supprimer ce dossier même si mon programme vient de le créer et ce sans être obligé de le quitter mais je ne vois pas comment faire ?...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  2. #2
    Membre Expert Avatar de jeffray03
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    1 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 501
    Par défaut
    salut,
    essaies cette commande depuis ton ecran de commande WINDOWS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RD /S /Q chemin_de_vers_ton_repertoire
    Eric

  3. #3
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    Salut jeffray03,
    Merci pour ton intervention. Malheureusement, même punition, la commande n'aboutit pas et affiche en ligne de commande la même erreur, à savoir que la suppression est impossible parce que ce dernier est actuellement ouvert dans une application ???
    Identique pour les fichiers contenus dans ce dossier. Le seul moyen de reprendre la main sur ces fichiers ou le dossier depuis Windows est de quitter la machine virtuelle Java ???
    Pourtant, je ne sollicite aucun flux directement, je me contente d'utiliser la méthode mkdir de la classe File pour créer un dossier de destination dans lequel ensuite je copies des fichiers via la méthode copy de la classe Files.
    Comment puis-je faire pour lâcher la main sur ces dossiers et fichiers sans être obligé de quitter la JVM ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Montre nous un peu de code.
    Tu ne laisses pas un flux ouvert sur un fichier de ce répertoire, par hasard ?

  5. #5
    Membre Expert
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 095
    Par défaut
    C'est tout ce que je mérite....

    Ça c'était avant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Files.copy(fichierSource.toPath(), new FileOutputStream(fichierDestination));
    Ca c'est maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FileOutputStream fluxSortie = new FileOutputStream(fichierDestination);
    Files.copy(fichierSource.toPath(), fluxSortie);
    fluxSortie.close();
    Et ça marche beaucoup mieux. Merci fr1man, ta remarque a fait Tilt !
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Pendant qu'on y est :

    Toujours gérer les flux avec un try-with-resource !

    Tu n'as aucune garantie que ton code arrivera sans encombre jusqu'au fluxSortie.close(), là. Un try-with-resource donnerait cette garantie, dont tu sais maintenant qu'elle est indispensable.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. problème avec files dans assembly
    Par felix79 dans le forum Maven
    Réponses: 4
    Dernier message: 15/09/2009, 11h39
  2. Problème avec File.Exists
    Par kazylax dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/06/2009, 15h40
  3. Bitmap et problème avec file move
    Par PatStan17 dans le forum ASP.NET
    Réponses: 7
    Dernier message: 02/06/2009, 08h20
  4. [VS2008 Express] Problème avec File.SetLastWriteTime
    Par bubulemaster dans le forum Débuter
    Réponses: 3
    Dernier message: 06/07/2008, 12h56
  5. problème avec File::Tee
    Par olwin dans le forum Modules
    Réponses: 6
    Dernier message: 08/05/2008, 20h22

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