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 :

[jdic]Ouvrir un fichier avec la méthode Desktop


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut [jdic]Ouvrir un fichier avec la méthode Desktop
    J'ai le code suivant qui est censé m'ouvrir un fichier html contenu dans un sous répertoire de mon jar.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    try{
    	File fleFichier = new File(getClass().getResource("ressources/aide.html").toString());
    	System.out.println(fleFichier);
    	Desktop.open(fleFichier);
     
    }
    catch(DesktopException msg){
    	System.out.println(msg);
    }
    Cependant, cela me renvoie l'erreur suivante :

    org.jdesktop.jdic.desktop.DesktopException: The given file doesn't exist.
    Ma variable fleFichier contient cela :

    file:\C:\Documents%20and%20Settings\xojmrc\Eclipse\rtfBuilder\rtfBuilder\ressources\aide.html
    Si je définit ma variable file "manuellement" avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File fleFichier = new File("C:/Documents and Settings/xojmrc/Eclipse/rtfBuilder/rtfBuilder/ressources/aide.html");
    Ca fonctionne parfaitement.

    J'ai donc pensé que c'est les %20 ainsi que le "file:\" qui posent problème. Mais comment puis-je faire pour les enlever ?

  2. #2
    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,



    Le constructeur File(String) n'accepte pas d'URL, mais seulement des chemins dans le système de fichiers... L'objet File que tu crées ne correspond pas à un vrai fichier sur le système local, mais à un fichier inconnu.

    Si tu aurais loggé les infos sur ton fichier tu t'en serais aperçu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    System.out.println(fleFichier.getAbsolutePath());
    System.out.println(fleFichier.exists()); // affiche false

    Donc l'erreur de JDIC est tout à fait normale...


    Pour créer un objet File à partir d'une URL file:, il faut passer par le constructeur File(URI) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File fleFichier = new File(getClass().getResource("ressources/aide.html").toURI());

    Maintenant attention : cela ne peut fonctionner qu'avec des url en file: (et donc des fichiers enregistrée directement sur le système de fichier) !
    Si ton fichier sera à terme enregistrer dans un jar cela ne marchera plus...


    a++

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2006
    Messages : 147
    Points : 120
    Points
    120
    Par défaut
    Si tu aurais loggé les infos sur ton fichier tu t'en serais aperçu :
    J'ai logué le contenu du file, c'est d'ailleurs ce qui m'a fait remarquer que c'était faux. Mais c'est sûr ton file.exist() est meilleur.

    Le truc que je ne connaissais pas c'est le toURI.

    Ça marche c'est parfait, merci beaucoup adiGuba.

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

Discussions similaires

  1. Ouvrir un fichier avec Desktop
    Par Jose.N70 dans le forum Général Java
    Réponses: 1
    Dernier message: 26/11/2012, 11h02
  2. ouvrir un fichier avec la classe Desktop
    Par Bloodista dans le forum Général Java
    Réponses: 2
    Dernier message: 23/04/2008, 17h32
  3. [ API JDIC ] Ouvrir un fichier avec des paramètres
    Par macmanus dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 11/05/2007, 15h32
  4. Ouvrir un fichier avec une appli déjà lancée
    Par Cameleon45 dans le forum Langage
    Réponses: 5
    Dernier message: 04/01/2006, 17h42
  5. [Débutant(e)][JDIC] Ouvrir un fichier d'aide
    Par alex'l dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/09/2005, 10h40

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