Je veux accéder à mon répertoire de travail actuel en utilisant Java.
Mon code :
String currentPath = new java.io.File(".").getCanonicalPath();
System.out.println("Current dir:" + currentPath);
String currentDir = System.getProperty("user.dir");
System.out.println("Current dir using System:" + currentDir);
Sortie :
Current dir: C:\WINDOWS\system32
Current dir using System: C:\WINDOWS\system32
Ma sortie n'est pas correcte car le lecteur C n'est pas mon répertoire courant.
Comment obtenir le répertoire courant ?
2 votes
Pouvez-vous coller ici ce que vous voyez lorsque vous exécutez
cd
sur votre invite de commande lorsque vous exécutez ceci ?3 votes
Qu'est-ce que vous essayez d'accomplir en accédant au répertoire de travail ? Pourrait-on le faire en utilisant le chemin des classes à la place ? Par exemple, si vous devez lire un fichier texte sur le système de fichiers, vous pouvez le trouver facilement s'il se trouve dans le chemin des classes.
1 votes
Comment ? Pouvez-vous nous en dire plus ?
1 votes
Pour plus d'informations sur l'accès à un fichier sur le chemin de la classe, voir stackoverflow.com/questions/1464291/
20 votes
À des fins de débogage, le répertoire de travail peut être utile pour savoir si le programme ne semble pas pouvoir accéder à des fichiers qui existent.
3 votes
Les deux méthodes (et les méthodes ci-dessous) semblent correctes. Si vous obtenez le répertoire système comme CWD, cela peut être dû à un wrapper qui fait un CD avant de lancer Java. Par exemple, javapath peut faire ceci. Pour éviter cela, spécifiez le chemin d'accès à java.exe directement dans le répertoire d'origine de Java_:home.
3 votes
Gardez à l'esprit qu'une chose est le répertoire de travail, et l'autre le répertoire dans lequel votre classe réside. Ils ne sont généralement pas les mêmes.
0 votes
@Qazi Est-ce que l'une des réponses ci-dessous a résolu votre cas ? Pouvez-vous choisir l'une d'entre elles comme réponse ?