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:

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()+"<");
    }
}
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
 
/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.