2013-08-19 2 views
3

quand je crée un nouveau projet Web dynamique et exécuter le code ci-dessous:JAVA IO: getAbsolutePath()

File file = new File(""); 
String path = file.getAbsolutePath(); 
System.out.println(path); 

Je reçois ce résultat:

C: \ Users \ workspace Toshiba \ \ Projet.

ce qui est bon !!!. Mais quand j'importe un autre projet et que j'exécute le même code, j'obtiens ceci:

D: \ Eclipse.

(le chemin de l'application d'éclipse).

et que !! Je ne peux pas expliquer ou réparer.

Toute aide.!

+0

, votre grammaire est mauvaise, pour être honnête. mais pourquoi quelqu'un ferait-il ce que vous faites? pourquoi créez-vous un fichier ("")? L'API Java dit: "Crée une nouvelle instance de fichier en convertissant la chaîne de chemin donnée en un chemin d'accès abstrait.Si la chaîne donnée est la chaîne vide, le résultat est le chemin d'accès abstrait vide." Peu importe ce que cela signifie. –

+0

Vous êtes dans un répertoire de travail différent chaque fois que vous obtenez un résultat différent. – EJP

Répondre

3

Parce qu'il prend emplacement par défaut de votre projet (répertoire de travail) lorsque vous passez rien dans new File (« »).

J'ai téléchargé l'image afin que vous puissiez comprendre facilement: enter image description here

Supposons que votre chemin de l'espace de travail est: c:/test/MyWorkspace

vous configurez le répertoire de travail comme ci-dessus (en image)

puis exécutez vous obtenez quelque chose comme ceci: c:/test/myworkspace/TestJquery

+0

s'il vous plaît publier cette solution afin que je puisse le marquer comme résolu. Résolu !!! allez dans Exécuter -> Exécuter les configurations ... -> choisissez le type de votre projet sur la gauche -> sélectionnez l'onglet arguments à droite -> Répertoire de travail -> autre: tapez ($ {workspace_loc: nom_projet}) . –

+0

J'ai 2 projet dans mon espace de travail lorsque je teste votre code dans les deux le nom du projet d'affichage. J'ai également essayé d'utiliser un autre nom de projet comme vous l'avez dit ($ {workspace_loc: nom_projet}) -> ici quel que soit le nom du projet spécifié qui sera affiché. –

+0

C'est ce dont j'avais besoin ... Merci mon pote ... +1 .. :) –

3

Avez-vous vérifié la documentation de la méthode?

Si ce chemin est déjà abstrait absolu, la chaîne est tout simplement chemin retourné comme par la méthode getPath(). Si ce chemin d'accès abstrait est le chemin d'accès abstrait vide, alors la chaîne de chemin d'accès du répertoire de l'utilisateur actuel, qui est nommée par la propriété du système user.dir, est renvoyée. Sinon, ce chemin d'accès est résolu en de manière dépendant du système. Sur les systèmes UNIX, un chemin d'accès relatif est absolu en le résolvant par rapport au répertoire utilisateur en cours. Sur les systèmes Microsoft Windows, un chemin relatif est rendu absolu par en le résolvant par rapport au répertoire actuel du lecteur nommé par le chemin d'accès , le cas échéant; sinon, il est résolu par rapport au répertoire actuel de l'utilisateur.

c'est probablement toutes les informations dont vous avez besoin ...

bien