Wie finde ich den absoluten Pfad zu einem Play-Framework-app?
-
27-09-2019 - |
Frage
Im Moment arbeite ich mit einem Team auf einem Spiel! Rahmen App. Mit dem nächsten User Story habe ich einige andere Dateiänderungen zu implementieren, wie eine Datei in einem definierten Verzeichnis verschieben.
Weil wir auf verschiedenen Plattformen arbeiten, ich bin nicht immer sicher, ob die App den richtigen Weg hat. Also habe ich mit einem absoluten Pfad des App-Verzeichnis arbeiten möchten.
Wie kann ich den absoluten Pfad eines Spiels erhalten! app? Gibt es eine Methode für das?
Lösung
Diese Antwort gilt nur für ältere Versionen des Play-Framework, bevor v2.
Wiedergabe hat einen Anwendungspfad Eigenschaft:
String projectRoot = Play.applicationPath;
Dies wird Ihnen das Verzeichnis das Abspielen von ausgeführt wird.
Ich denke, eine bessere Praxis des Verzeichnis außerhalb des Projektes bewegt Verzeichnis installieren und den Pfad, um es in Ihrem application.conf
als Eigenschaft platzieren. Sie rufen es dann bei Bedarf. Zum Beispiel:
Application.conf:
my.file.path=/tmp/whatever
Code:
String projectRoot = Play.configuration.getProperty("my.file.path");
Andere Tipps
Seit Version 2.5.0 ist play.Play
Klasse veraltet. Es wird einzuspritzen play.Environment
empfohlen und das Verfahren wie folgt verwenden:
public File rootPath();
Die play.Environment
Singleton enthält auch einige sehr praktische Methode, die Dateien mit relativen Pfad liefern z.
public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);
Als Spiel 2.0:.. Play.Play.application () Pfad () getAbsolutePath ()
Keiner von denen auf meiner Version des Spiels gearbeitet, so habe ich diese statt: Play.current (). Pfad (). GetAbsolutePath ()