web-dev-qa-db-ja.com

Androidプロジェクトのフォルダーの相対パスを取得するにはどうすればよいですか?

コードを使用してプロジェクト内のフォルダーの相対パスを取得するにはどうすればよいですか?

プロジェクトに新しいフォルダーを作成しました。アプリの場所に関係なく、パスが正しいように、相対パスが必要です。

私はクラスで拡張しようとしています Android.app.Activity

おそらく "アセットからファイルパスを取得" に似たものでしょう。

32
Alex Kapustian

クラスパスを使用します。

ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("path/to/folder");
File file = new File(url.toURI());
// ...
24
BalusC

アプリケーションのルートフォルダーを探していますか?次に使用します

 String path = getClass().getClassLoader().getResource(".").getPath();

実際に「自分がどこにいるかを調べる」ために。

19
Kennet
File relativeFile = new File(getClass().getResource("/icons/forIcon.png").toURI());
myJFrame.setIconImage(tk.getImage(relativeFile.getAbsolutePath()));
6
Zin Win Htet

これで、プロジェクトパスが見つかりました。

new File("").getAbsolutePath();

これは「c:\ Projects\SampleProject」を返します

1
dchang

Javaサンプルコードを使用して相対パスにアクセスする方法を理解するには、このサンプルコードを確認できます。

import Java.io.File;

public class MainClass {

  public static void main(String[] args) {

    File relative = new File("html/javafaq/index.html");

    System.out.println("relative: ");
    System.out.println(relative.getName());
    System.out.println(relative.getPath());
  }
}

ここで、getPathはファイルの相対パスを表示します。

0
gmhk

Androidでは、アプリケーションレベルのメタデータは、アクティビティがその子孫である Context 参照を介してアクセスされます。

たとえば、getApplicationInfo().sourceDirプロパティを使用してソースディレクトリを取得できます。他のフォルダにもメソッドがあります(アセットディレクトリ、データディレクトリ、データベースディレクトリなど)。

0
JRL