コードを使用してプロジェクト内のフォルダーの相対パスを取得するにはどうすればよいですか?
プロジェクトに新しいフォルダーを作成しました。アプリの場所に関係なく、パスが正しいように、相対パスが必要です。
私はクラスで拡張しようとしています Android.app.Activity
。
おそらく "アセットからファイルパスを取得" に似たものでしょう。
クラスパスを使用します。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("path/to/folder");
File file = new File(url.toURI());
// ...
アプリケーションのルートフォルダーを探していますか?次に使用します
String path = getClass().getClassLoader().getResource(".").getPath();
実際に「自分がどこにいるかを調べる」ために。
File relativeFile = new File(getClass().getResource("/icons/forIcon.png").toURI());
myJFrame.setIconImage(tk.getImage(relativeFile.getAbsolutePath()));
これで、プロジェクトパスが見つかりました。
new File("").getAbsolutePath();
これは「c:\ Projects\SampleProject」を返します
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はファイルの相対パスを表示します。
Androidでは、アプリケーションレベルのメタデータは、アクティビティがその子孫である Context
参照を介してアクセスされます。
たとえば、getApplicationInfo().sourceDir
プロパティを使用してソースディレクトリを取得できます。他のフォルダにもメソッドがあります(アセットディレクトリ、データディレクトリ、データベースディレクトリなど)。