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 Chemin fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 42
    Points : 22
    Points
    22
    Par défaut Problème Chemin fichier
    Bonjour,

    Je travaille sous Eclipse,

    Je suis entrain de travailler sur une méthode qui récupère un fichier uploader, le sauvegarde sur le disque dur, et envoie cette adresse pour le charger sur le navigateur.

    Mon soucis se situe au niveau du :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String path=new File("").getAbsolutePath();
    En effet au lieu de me récupérer l'arborescence jusqu'à mon projet (C:/worksace/monProjet) il me donne le chemin d'eclipse (C:/eclipse/eclipse).

    Avez vous une idée du pourquoi cela me renvoie le chemin d'eclipse et pas du Workspace??

    Existe -t -il une autre solution pour récupérer le chemin du projet en cours d'execution??

    Merci par avance de votre aide.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par jeremy276 Voir le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String path=new File("").getAbsolutePath();
    En effet au lieu de me récupérer l'arborescence jusqu'à mon projet (C:/worksace/monProjet) il me donne le chemin d'eclipse (C:/eclipse/eclipse).
    C'est le répertoire courant, eclipse est libre de la mettre à la valeur qu'il désire avant d'exécuter ton application. D'une manière générale, rien ne garantira jamais que le répertoire courant = répertorie où se trouve ton application, c'est même faux dans la pluspart des cas.


    Pour le faire pointer vers le workspace:
    propriétés du projet -> run configuration -> prendre la configuration ad hoc -> arguments -> working directory -> mettre ${workspace_loc:nomDuProjet} mais ce ne sera de toutes façons valable que pour un lancement au sein d'eclipse.

  3. #3
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    1) utiliser la propriété système "user.dir" ?
    2) configurer l'exécution d'éclipse ?
    3) est-ce bien raisonnable? (c'est pas une ressource?)
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  4. #4
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Merci pour ta réponse,

    je vais essayer ta méthode.

    Mais j'aimerais savoir si il y a une méthode de lui dire de mettre le fichier dans le répertoire /monProjet/image, sans donner toute l'arborescence C:/ ... ?



    La propriété user.dir, me renvoit le dossier d'eclipse aussi.

    C'est une utilisation dans un web app deployer sur un serv.
    Donc avoir des chemins relatifs aux projet c'est mieux non?

  5. #5
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    Citation Envoyé par jeremy276 Voir le message
    Mais j'aimerais savoir si il y a une méthode de lui dire de mettre le fichier dans le répertoire /monProjet/image, sans donner toute l'arborescence C:/ ... ?
    réponse ICI
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  6. #6
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 42
    Points : 22
    Points
    22
    Par défaut
    Dans l'exemple que tu m'as donné, je ne comprend pas à quoi correspond le ClasseCourant?

  7. #7
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par jeremy276 Voir le message

    C'est une utilisation dans un web app deployer sur un serv.
    Donc avoir des chemins relatifs aux projet c'est mieux non?
    Non. D'abord parce que la notion de projet n'a aucun sens à l'exécution.

    Pour tes ressources dans une webapp, tu dispose déjà de plusieurs informations utiles:

    Si c'est pour lire des resource embarquée, la pratique veux que tu utilise soit ServletContext.getResource(), ServletContext.getResourceAsStream(), soit Thread.getContextClassLoader().getResource() et Thread.getContextClassLoader().getResourceAsStream() suivant que la resource concernée se trouve par rapport à la racine du war ou dans WEB-INF/classes


    Pour le stockage advitam, il faut décider d'un dossier à part et configurer ton application pour utiliser ce dossier? Pourquoi? Parce que l'application .war va, en général, être explosée par le serveur webapp au déploiement, bien souvent dans un dossier temporaire, et que lors du déploiement suivant, tout modification sera perdue => stocker à part, là où le conteneur ne risque pas d'efface.

    enfin, il y a aussi ServletContext.getRealPath(relativePath), qui te retournera le dossier où ton application aura été explosé, si il existe (pas de garantie) et que de toutes façons il vaut mieux éviter d'utiliser.

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

Discussions similaires

  1. Chemin fichier, problème à la création de l'exec
    Par wolaz dans le forum LabVIEW
    Réponses: 1
    Dernier message: 08/06/2011, 17h05
  2. Problème Chemin d'accès à un fichier MDB
    Par Gordon Freeman dans le forum JDBC
    Réponses: 1
    Dernier message: 10/07/2009, 15h18
  3. Problème chemin de fichier
    Par MustOne dans le forum Entrée/Sortie
    Réponses: 19
    Dernier message: 11/06/2009, 15h01
  4. problème accès fichiers et chemins
    Par Pirokkk dans le forum Applets
    Réponses: 1
    Dernier message: 19/06/2008, 14h06
  5. Réponses: 6
    Dernier message: 07/01/2008, 15h13

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