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

Langage Java Discussion :

changer de repertoire courant avec setProperty("user.dir", "myDir") ne fonctionne pas.


Sujet :

Langage Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut changer de repertoire courant avec setProperty("user.dir", "myDir") ne fonctionne pas.
    Bonjour,

    je voudrais accéder à des fichiers qui ne sont pas dans le répertoire courant d'exécution.

    Je ne veux pas fournir le nom du répertoire à chaque ouverture de fichier.
    C'est pourquoi j'ai pensé positionner le répertoire courant à l'aide de System.setProperty("user.dir", "myDir);

    Mais cela ne fonctionne pas comme le prouve l'éxécution d'un petit code de test:

    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
     
     
    import java.io.*;
     
    public class ChangeWorkingDir {
     
        static public void  main(String[] args){
            ChangeWorkingDir cwd = new ChangeWorkingDir();
            cwd.checkFile("plouf.txt");
            System.setProperty( "user.dir", "/home/molokoi/tmp");
            cwd.checkFile("plouf.txt");
            cwd.checkFile("/home/molokoi/tmp/plouf.txt");
        }
     
        public void checkFile(String fileName){
            System.out.println( System.getProperty("user.dir"));
            File myFile  = new File(fileName);
            System.out.println( "isfile: "+myFile.isFile());
            System.out.println( "length: "+myFile.length());
            System.out.println( "path: >"+myFile.getAbsolutePath()+"<");
        }
    }
    ce qui me donne le résultat suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    /home/molokoi/projets/java
    isfile: false
    length: 0
    path: >/home/molokoi/projets/java/plouf.txt<
    /home/molokoi/tmp
    isfile: false
    length: 0
    path: >/home/molokoi/tmp/plouf.txt<
    /home/molokoi/tmp
    isfile: true
    length: 15
    path: >/home/molokoi/tmp/plouf.txt<

    qu'en dites vous ? pourquoi un accès avec chemin absolu en string fonctionne alors que System.setProperty non ?
    on voit bien que le chemin absolu du fichier est le même.
    Je ne comprends pas.


    Merci pour vos lumières.

  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,


    Tu ne peux pas changer le répertoire de travail de cette manière...

    Tu dois gérer cela au sein de ton programme puis utiliser le constructeur File(File,String)...


    a++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Cela signifie donc que l'on doive spécifier le répertoire à chaque construction de File() ?

    Il n'y a aucun moyen de changer le répertoire de travail de façon permanente ?

    À ce propos, quelle est la fonction de setProperty("user.dir") ?

  4. #4
    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
    Oui

    Non

    setProperty() sert à définir des propriétés, mais tu ne devrais pas redéfinir les propriétés de base comme "user.dir" qui ne devrait être accédée qu'en lecture-seule.


    a++

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    bon, merci pour tes reponses rapides.

    a bientot.

  6. #6
    Candidat au Club
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut même problème
    Bonjour Molokoi,
    Je rencontre exactement le même problème que toi. Je travaille sur une classe permettant de zipper un répertoire complet, et si je met les adresses en absolue, je retrouve les chemins complets lors du dézippage!!!
    Peux-tu me dire si tu as trouvé une solution satisfaisante depuis ton dernier post?
    En te remerciant par avance.
    Christophe

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

Discussions similaires

  1. changer le repertoire courant par défaut avant getopenfilename
    Par sambinapas dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 10/12/2010, 14h38
  2. Réponses: 3
    Dernier message: 02/07/2009, 18h01
  3. Comment changer le repertoire courant?
    Par Nixar dans le forum C#
    Réponses: 3
    Dernier message: 15/10/2007, 09h29
  4. changer le repertoire courant d'un fichier
    Par Iria77 dans le forum Général Python
    Réponses: 3
    Dernier message: 27/09/2006, 11h17
  5. Réponses: 4
    Dernier message: 08/06/2006, 16h44

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