web-dev-qa-db-de.com

Wie kann ich den relativen Pfad der Ordner in meinem Android-Projekt abrufen?

Wie kann ich den relativen Pfad der Ordner in meinem Projekt mithilfe von Code abrufen?

Ich habe in meinem Projekt einen neuen Ordner erstellt, und ich möchte einen relativen Pfad, sodass der Pfad, egal wo sich die App befindet, korrekt ist.

Ich versuche es in meiner Klasse zu machen, die Android.app.Activity erweitert.

Vielleicht etwas Ähnliches wie "Dateipfad vom Asset abrufen" .

32
Alex Kapustian

Nutzen Sie den Klassenpfad. 

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

Suchen Sie nach dem Stammordner der Anwendung? Dann würde ich verwenden

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

um tatsächlich "herauszufinden, wo ich bin". 

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

Damit habe ich meinen Projektpfad gefunden:

new File("").getAbsolutePath();

dies gibt "c:\Projects\SampleProject" zurück

1
dchang

Sie können diesen Beispielcode überprüfen, um zu verstehen, wie Sie mit dem Java-Beispielcode auf den relativen Pfad zugreifen können

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());
  }
}

Hier zeigt getPath den relativen Pfad der Datei an.

0
gmhk

In Android wird auf Metadaten auf Anwendungsebene über die Referenz Context zugegriffen, von der eine Aktivität abgeleitet ist.

Sie können das Quellverzeichnis beispielsweise über die getApplicationInfo().sourceDir-Eigenschaft abrufen. __ Es gibt auch Methoden für andere Ordner (Asset-Verzeichnis, Datenverzeichnis, Datenbankverzeichnis usw.).

0
JRL