Bonjour,
je voudrais accéder à des fichiers qui ne sont pas dans le répertoire courant d'exécution.
Je ne veux pas fournir le nom du répertoire à chaque ouverture de fichier.
C'est pourquoi j'ai pensé positionner le répertoire courant à l'aide de System.setProperty("user.dir", "myDir);
Mais cela ne fonctionne pas comme le prouve l'éxécution d'un petit code de test:
ce qui me donne le résultat suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.*; public class ChangeWorkingDir { static public void main(String[] args){ ChangeWorkingDir cwd = new ChangeWorkingDir(); cwd.checkFile("plouf.txt"); System.setProperty( "user.dir", "/home/molokoi/tmp"); cwd.checkFile("plouf.txt"); cwd.checkFile("/home/molokoi/tmp/plouf.txt"); } public void checkFile(String fileName){ System.out.println( System.getProperty("user.dir")); File myFile = new File(fileName); System.out.println( "isfile: "+myFile.isFile()); System.out.println( "length: "+myFile.length()); System.out.println( "path: >"+myFile.getAbsolutePath()+"<"); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 /home/molokoi/projets/java isfile: false length: 0 path: >/home/molokoi/projets/java/plouf.txt< /home/molokoi/tmp isfile: false length: 0 path: >/home/molokoi/tmp/plouf.txt< /home/molokoi/tmp isfile: true length: 15 path: >/home/molokoi/tmp/plouf.txt<
qu'en dites vous ? pourquoi un accès avec chemin absolu en string fonctionne alors que System.setProperty non ?
on voit bien que le chemin absolu du fichier est le même.
Je ne comprends pas.
Merci pour vos lumières.
Partager