Question

En ce moment, je travaille avec une équipe sur Play! app-cadre. Avec la prochaine histoire d'utilisateur, je dois implémenter des modifications de fichiers différents, tels que le déplacement d'un fichier dans un répertoire défini.

Parce que nous travaillons sur différentes plates-formes, je ne suis pas toujours vraiment sûr si l'application a le droit chemin. Donc, je veux travailler avec un chemin absolu du répertoire de l'application.

Comment puis-je obtenir le chemin absolu d'un jeu! app? Y at-il une méthode pour cela?

Était-ce utile?

La solution

Cette réponse applique uniquement aux anciennes versions du Framework Play, avant v2.

Lecture a un chemin d'application propriété:

String projectRoot = Play.applicationPath;

Cela vous donnera le répertoire que le jeu est en cours d'exécution à partir.

Je pense qu'une meilleure pratique se déplace à l'extérieur du répertoire de votre projet répertoire d'installation et de placer le chemin d'accès dans votre application.conf comme une propriété. Vous récupérez alors il en cas de besoin. Par exemple:

application.conf:

my.file.path=/tmp/whatever

Code:

String projectRoot = Play.configuration.getProperty("my.file.path");

Autres conseils

Depuis la version 2.5.0 , classe play.Play est dépréciée. Il est recommandé de play.Environment injecter et utiliser la méthode comme suit:

public File rootPath();

Le singleton play.Environment contient également une méthode très pratique, qui fournissent les fichiers par chemin relatif par exemple.

public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);

de jeu 2.0:.. Play.Play.application () chemin () getAbsolutePath ()

Aucun de ceux travaillé sur ma version de jeu, donc je ceci: getAbsolutePath ()

Play.current () chemin ()..
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top