web-dev-qa-db-fra.com

Comment puis-je obtenir le chemin relatif des dossiers dans mon projet Android?

Comment puis-je obtenir le chemin relatif des dossiers de mon projet à l'aide de code?

J'ai créé un nouveau dossier dans mon projet et je veux son chemin relatif. Ainsi, peu importe où se trouve l'application, le chemin sera correct.

J'essaie de le faire dans ma classe qui étend Android.app.Activity .

Peut-être quelque chose de similaire à "obtenir le chemin du fichier de la ressource" .

32
Alex Kapustian

Utilisez le classpath. 

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

Vous recherchez le dossier racine de l'application? Ensuite, j'utiliserais

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

pour réellement "savoir où je suis". 

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

Avec cela, j'ai trouvé le chemin de mon projet:

new File("").getAbsolutePath();

ce retour "c:\Projects\SampleProject"

1
dchang

Vous pouvez consulter cet exemple de code pour comprendre comment accéder au chemin relatif à l'aide de l'exemple de code 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 affichera ici le chemin relatif du fichier.

0
gmhk

Sous Android, les métadonnées au niveau de l’application sont accessibles via le paramètre Context , dont une activité est un descendant.

Par exemple, vous pouvez obtenir le répertoire source via la propriété getApplicationInfo().sourceDir . Il existe également des méthodes pour d’autres dossiers (répertoire assets, répertoire de données, répertoire de base de données, etc.).

0
JRL