Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Problème de chemin relatif [ Système / API ] (informatixo)

vendredi 25 janvier 2008 à 23:06:36 | Problème de chemin relatif

informatixo

Membre Club
Bonsoir à tous,

Je vous écris pour un problème de chemin relatif. La multitude de réponses trouvée grâce à la fonction recherche du site ne m'a malheureusement pas aidé pour mon problème.

Evidement quand je précise un chemin absolu en mettant des doubles antislash celà fonctionne sans problème.

Pour une raison de portabilité, j'ai voulu préciser mes chemins de façon relative.

J'ai deux dossiers qui sont au même niveau. Dans le premier dossier, j'ai la classe dont je me sers et je veux charger un fichier qui se situe dans le second dossier. Donc logiquement, il faut remonter d'un dossier avant de pouvoir aller dans le second dossier qui contient le fichier.

Un petit exemple s'impose je crois ! lol

racine
    |-> dossier1
    |      |-> classe.java
    |
    |-> dossier2
    |      |-> fichier.properties

Version absolu (on est dans C:\dossier1\classe.java) : "C:\\racine\\dossier2\fichier.properties" -> qui fonctionne

Version relative (on est toujours dans C:\dossier1\classe.java) : "..\\dossier2\\fichier.properties"


Message d'erreur généré : java.io.FileNotFoundException: ..\dossier2\fichier.properties (Le chemin d'accès spécifié est introuvable)

Normalement on utilise le "point" pour signifier qu'on est dans le dossier en cours et le "point point" pour signifier que l'on désire remonter d'un cran, dans le dossier parent.

Mais apparement, ici, c'est justement le "point point" qui pose problème.

J'ai essayé d'échapper les caractères "point" de cette façon "\.\.\\dossier2\\fichier.properties" mais évidement celà ne fonctionne pas.

Je m'en remet donc à votre jugement, si quelqu'un a une idée ...

Merci d'avance pour l'attention que vous porterez à ce fil et les contributions que vous apporterez.

Cordialement, informatixo

Que la force soit avec vous !

samedi 26 janvier 2008 à 16:05:13 | Re : Problème de chemin relatif

gouessej

Essaie les méthodes getParent() et getParentFile() de la classe java.io.File pour t'en sortir. Avant de poser une question ici, ce serait bien que tu penses à jeter un coup d'oeil dans la javadoc :
http://java.sun.com/javase/6/docs/api/

C'est bien de te soucier de la portabilité, on est en Java quand même et j'en vois trop ici qui parle comme s'il n'y avait que Windows sur Terre.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java

samedi 26 janvier 2008 à 18:30:34 | Re : Problème de chemin relatif

informatixo

Membre Club
Je te remercie gouessej pour ton aide.

J'ai évidement été faire un tour sur la javadoc mais avant d'utiliser des moyens plus complexes j'ai préféré m'en référer au forum afin de savoir si quelqu'un qui utilise cela courament aurait pas une astuce simple.

J'ai le code suivant :

Properties chemin = new Properties();
chemin.load(new FileInputStream("..\\dossier2\\fichier.properties"));

En revanche, je ne vois pas trop comment utiliser les méthodes getParent() et getParentFile() sachant que mon FileInputStream n'est pas créée car le chemin relatif n'est pas correct. J'ai aussi essayé la variante "../dossier2/fichier.properties" qui ne fonctionne toujours pas à cause des ".."

Je ne dois pas quand même être le seul à vouloir utiliser des chemins relatifs lol

Je suis débutant sous Java et si tu as une idée, pourrait-tu me montrer un exemple qui me mette sur la voie STP ?

En tous les cas merci beaucoup de ton aide.

Que la force soit avec vous !

samedi 26 janvier 2008 à 19:53:19 | Re : Problème de chemin relatif

adamo901

J'avais eu le même besoin que toi et si je me rappelle bien, la solution était :  l'utilisation de la propriété de la class System :
String chemin = System.getProperties("user.dir");

A partir de cet instant là, vous pouvez accéder là où vous voulez et quelque soit le répértoir d'execution de votre application.

J'espère que ça marcherai pour toi et bonne chance.



samedi 26 janvier 2008 à 23:13:59 | Re : Problème de chemin relatif

gouessej

adamo901 a raison. Une fois que tu as un chemin absolu valide, sers toi en pour construire un objet de type File, applique les méthodes dont je t'ai parlé et utilise getPath() et getAbsolutePath() pour récupérer les chemins. Ce forum est pas mal mais je pense que tu ferais mieux de regarder et de bien comprendre la documentation Java avant de jeter un coup d'oeil ici. Java est très vaste, tu ne peux pas tout trouver ici.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java

dimanche 27 janvier 2008 à 01:51:04 | Re : Problème de chemin relatif

informatixo

Membre Club
Merci beaucoup de votre aide à tous les deux.

J'avais effectivement pensé à une idée similaire en déclarant ma propre variable d'environnement qui pointerait sur le dossier "src" ou alors en utilisant un fichier lors de l'installation pour mémoriser le chemin absolu vers "src".

Mais j'ai pensé qu'il serait plus simple d'utiliser les chemins relatifs comme en HTML mais apparement d'après ce que vous me dites tous les deux,  cela n'est pas possible.

gouessej - > j'utilise assidument la documentation et c'est d'ailleurs ce qui m'a permis de progresser plus rapidement car il faut bien reconnaître qu'en java elle est bien faite. Cependant, dès fois, certaines astuces n'y figurent pas et rien ne remplacera l'expérience d'un développeur. C'est pour cela que j'ai fais appel à ce forum qui est une communauté d'entraide.

Bon, donc pour résumer, il n'est pas possible d'utiliser les ".." en java pour remonter d'un niveau dans l'arborescence que l'on indique dans un chemin relatif ?

Je vais donc devoir me plier à la terrible réalité et utiliser un intermédiaire (fichier ou variable d'environnement) ?

Encore une fois, merci beaucoup.

Cordialement, informatixo

Que la force soit avec vous !

dimanche 27 janvier 2008 à 08:57:15 | Re : Problème de chemin relatif

gouessej

Réponse acceptée !
Il n'y a pas d'astuce proprement dite mais c'est vrai que quelque chose qui ne te paraît pas évidemment en regardant la documentation peut s'éclaircir ici. Les ".." n'ont pas lieu d'être comme il y a la méthode getParent(), Java est logique jusqu'au bout, je ne vois pas le problème. Sous Linux, quand tu tapes "cd .." dans ta console, ça permet de remonter d'un niveau aussi et ça ne me perturbe pas que ce ne soit pas écrit comme ça en Java puisque c'est un langage portable qui ne dépend pas d'une plateforme particulière.

Personnellement, je te conseille d'utiliser une variable d'environnement facilement accessible depuis Java et de créer un répertoire (méthodes mkdir() et mkdirs() dans la classe File) où tu mets tes fichiers, c'est ce qui me semble le plus simple.

TUER : http://tuer.tuxfamily.org/tuer.php

yeah! vive java

dimanche 27 janvier 2008 à 18:59:41 | Re : Problème de chemin relatif

informatixo

Membre Club
Oui c'est vrai que chaque langage de programmation a sa logique. Je suis débutant sous Java, mais il est vrai que ce langage est très attrayant et intéressant.

Je considère donc que mon problème est résolu avac la variable d'environnement (base à partir de laquelle je partirais pour construire tous mes chemins relatifs.

Je trouve intéressant de pouvoir discuter, échanger des problèmes entre développeurs. Cela permet de s'ouvrir à des techniques que l'on a pas l'habitude d'utiliser.

En tous les cas merci beaucoup à tous les deux de m'avoir aidé et au plaisir de s'écrire au détour d'un fil.

Que la force soit avec vous !



Cette discussion est classé dans : fichier, problème, dossier, chemin, dossier2


Répondre à ce message

Sujets en rapport avec ce message

Chemin relatif dans un FileInputStream [ par boyboy ] Salut!J'ai un problème : Je veux accéder à un fichier à partir d'un fileInputStream. Le problème est que j'aimerais lui passer le chemin relatif de ce problème pour afficher un fichier .class dans une page Web [ par zalumetkolo ] Kikou !Je debute en programmation Java, pour commencer j'ai donc installé NetBeans,plus exactement le pack : J2SE(TM) v 1.4.2 with NetBeans(TM) IDE v Help: System.loadLibrary("Fichier"); ????? [ par zebulaon ] Bonjour,J'ai un probléme ac cette methode. Elle permet de charger la Dll que j'ai créer. Cependt j'ai des erreurs a l'execution car le chemin ou est s Help: System.loadLibrary("Fichier"); ????? [ par zebulaon ] Bonjour,J'ai un probléme ac cette methode. Elle permet de charger la Dll que j'ai crée. Cependt j'ai des erreurs à l'execution car le chemin où est si dans la classe File -> methode d'acces a un fichier [ par marsrepart ] re -- helloVoilà .. j'ai une string correspondant à un chemin d'accès et j'aimerai savori s'il correspond à un chemin de fichier existant deja.... Je Afficher la courbe sonore d'un fichier son [ par vegego ] Voila c'est mon premier message sur ce forum est j'ai un gros problème :Je m'explique : En entree de mon programme, j'ai un fichier son sur ce fichier Problème lors de la compilation du fichier IDL de Corba [ par vinvay ] cf : http://java.sun.com/developer/technicalArticles/RMI/rmi_corba/au 5) il est dit que lors de la compilation du fichier FileInterface.idl, le fichie Sauvegarde de données dans un fichier [ par DadaPanda ] Bonjour bonjourBon j'ai pas reussi a transcrire le problème ajeur dans le titre parce que c'est assez long.Voila mon problème :Je dispose d'une quanti jtree [ par demonc ] Bonjour,J'utilise une JTree comme un explorateur grace à un TreeModel. Mon problème est que j'aimerai par l'intermédiaire d'une ComboBox changer de pa JTree [ par demonc ] Bonjour,J'utilise une JTree comme un explorateur grace à un TreeModel. Mon problème est que j'aimerai par l'intermédiaire d'une ComboBox changer de pa


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,343 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.