Question

Je suis en train de faire le chemin vers un fichier qu'il est situé hors du pot de java et je ne veux pas utiliser un chemin absolu. Un exampel: Disons que le pot est situé dans ~ / lib / myjar.jar et le fichier se trouve dans le même dossier. Ce que j'ai essayer quelque chose comme ça, mais il échoue:

File myfile = new File(this.getClass().getResource("../../../").toURI());

Note: mon colis est com.contro.gui, voilà pourquoi je « ../../../ », afin d'accès à la « racine »

Je ne sais pas comment je peux accéder au fichier. Toute suggestion?? Qu'en est-il si le fichier que je veux accès est dans un autre dossier comme ~ / res / ???

Était-ce utile?

La solution

Si le fichier est dans le même répertoire que le pot, je pense que ce sera le travail (assez hacky se sent, mais ...):

URL url = getClass().getProtectionDomain().getCodeSource().getLocation();
File myfile = new File(url.toURI());
File dir = myfile.getParentFile(); // strip off .jar file

(ai pas testé, mais il semble possible. Est-ce que le travail avec des pots à base de fichiers bien sûr).

Si le fichier est dans un emplacement aléatoire, je pense que vous devrez soit passer des paramètres ou vérifier l'emplacement « connus » comme user.home. (Ou bien, vous pouvez toujours placer le fichier dans le bocal un getResource() d'utilisation.)

Autres conseils

Non seulement faire

     File FileName = new File(".");
     String Directory = FileName.getCanonicalPath();

que vous obtiendrez le répertoire parent de votre classe dans un fichier ou un pot rappelez-vous juste pour définir le répertoire si elle est dans un bocal comme celui-ci « NameOfJar \ NameOfFolder \ etc »

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top