20

現時点では、私は Play のチームと協力しています。フレームワーク アプリ。次のユーザー ストーリーでは、ファイルを定義済みディレクトリに移動するなど、いくつかの異なるファイル変更を実装する必要があります。

私たちはさまざまなプラットフォームで作業しているため、アプリが正しいパスを持っているかどうかは常にわかりません. したがって、アプリ ディレクトリの絶対パスを使用したいと考えています。

Play! の絶対パスを取得するにはどうすればよいですか? アプリ?これには方法がありますか?

4

4 に答える 4

18

この回答は、v2より前の古いバージョンのPlayFrameworkにのみ適用されます。

Playにはアプリケーションパスプロパティがあります。

String projectRoot = Play.applicationPath;

これにより、Playが実行されているディレクトリが提供されます。

より良い方法は、ディレクトリをプロジェクトのインストールディレクトリの外に移動し、そのディレクトリへのパスをapplication.confプロパティとして配置することだと思います。次に、必要に応じてそれを取得します。例えば:

Application.conf:

my.file.path=/tmp/whatever

コード:

String projectRoot = Play.configuration.getProperty("my.file.path");
于 2010-11-01T04:43:06.697 に答える
12

バージョン2.5.0以降、play.Playクラスは非推奨になりました。play.Environment次のようにメソッドを注入して使用することをお勧めします。

public File rootPath();

play.Environmentシングルトンには、相対パスでファイルを提供する非常に便利なメソッドも含まれています。

public File getFile(String relativePath);
public URL resource(String relativePath);
public InputStream resourceAsStream(String relativePath);
于 2016-07-15T00:21:26.257 に答える
10

play 2.0 以降: play.Play.application().path().getAbsolutePath()

于 2013-12-10T12:13:28.503 に答える
3

どちらも私のバージョンのプレイでは機能しなかったので、代わりにこれを使用しました: Play.current().path().getAbsolutePath()

于 2013-08-08T16:06:05.063 に答える