web-dev-qa-db-fra.com

JFileChooser - ouvert dans le répertoire courant

J'ai un simple JFileChooser configuré de la manière suivante

JFileChooser chooser = new JFileChooser();
chooser.setCurrentDirectory(new File("."));
chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
chooser.setFileFilter(new FileFilter() {
     ...
});

int v = chooser.showOpenDialog(this);
if (v == JFileChooser.APPROVE_OPTION) {
     File file = chooser.getSelectedFile();
     System.out.println(file.getAbsolutePath());
}

Comme vous pouvez le voir, ce FileChooser démarre dans le répertoire courant, qui dans mon projet Netbeans, est la racine du dossier du projet. Voici le problème: lorsque je sélectionne un fichier et qu'il imprime le chemin absolu, il inclut le "." Sur le chemin. Par exemple, la sortie que j'obtiens est:

/Users/MyName/Folder1/Folder2/./Temp.xls

Bien sûr, c'est bizarre, d'autant plus que je le montre à l'utilisateur. Maintenant, je pourrais être hacky et faire des trucs de traitement de sous-chaîne amusants pour me débarrasser de ça "/./" portion. Mais ... existe-t-il un programmeur non paresseux pour résoudre ce problème? Merci d'avance!

17
CodeGuy

Utilisez la propriété système "user.dir" comme suit:

File workingDirectory = new File(System.getProperty("user.dir"));
chooser.setCurrentDirectory(workingDirectory);
31
Nathaniel Jones