15 votes

jfilechooser - définit le répertoire comme étant un chemin dans un fichier

J'essaie de définir le chemin du répertoire dans JFilechooser par quelque chose comme ceci (en utilisant commons-io) :

String fileContents = IOUtils.toString(new FileInputStream("path.txt"));
File theDirectory = new File(fileContents);

filechooser = new JFileChooser();
fileChooser.setCurrentDirectory(theDirectory);
filechooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

J'utilise getCanonicalPath() pour obtenir le chemin et l'écrire dans le fichier path.txt.

path = file.getCanonicalPath();

Je n'ai pas l'intention de mettre tout mon code ici, mais je suis sûr que le programme écrit et lit le chemin dans path.txt. Je n'obtiens aucune erreur, mais à chaque fois que je lance le programme, il ouvre toujours JFilechooser dans mon dossier documents.

22voto

Heisenbug Points 20496

Essayez de passer le répertoire courant directement dans le constructeur :

filechooser = new JFileChooser(theDirectory);

6voto

mre Points 21051

Si vous consultez le API en utilisant le constructeur par défaut (c'est-à-dire new JFileChooser() ):

Construit un fichier JFileC le répertoire par défaut de l'utilisateur. Cette fonction défau d'exploitation. Il s'agit généralement du répertoire "Mes Documents" sous Windows, et le dossier le répertoire personnel de l'utilisateur sous Unix.

Cela permettrait sembler pour expliquer l'ouverture permanente à Mes documents mais cette n'est pas votre problème. En fait, votre problème réside dans définir le répertoire courant (c'est-à-dire setCurrentDirectory(theDirectory) ):

Définit le répertoire actuel. Si l'on passe null fait pointer le sélecteur de fichiers sur le répertoire par défaut de l'utilisateur, à savoir le répertoire par défaut de l'utilisateur. Ce répertoire par défaut dépend du système d'exploitation d'exploitation. Il s'agit généralement du dossier "Mes Documents" sous Windows, et le répertoire le répertoire personnel de l'utilisateur sous Unix. Si le fichier passé en tant que currentDirectory n'est pas n'est pas un répertoire, le parent du fichier sera utilisé comme répertoire répertoire courant. Si le parent n'est pas traversable, il remontera le jusqu'à ce qu'il trouve un répertoire ou atteint la racine du système de fichiers. racine du système de fichiers.

Cela étant dit, je ferais attention aux texte surligné puisqu'il semble que vous définissiez un fichier comme étant le répertoire courant et non un répertoire .

1voto

pavan pandey Points 1

Dans votre classe principale, déclarez

public static String dirpath=".";

private void btnBrowseActionPerformed(java.awt.event.ActionEvent evt) {    
 JFileChooser jfc = new JFileChooser(dirpath);
 dirpath =jfc.getSelectedFile().getAbsolutePath().toString();
}

1voto

Batuhan Bardak Points 110

Pour sélectionner le dernier répertoire que vous ouvrez :

chooser.setCurrentDirectory(lastDirectory);

int r = chooser.showOpenDialog(new JPanel());

if (r == JFileChooser.APPROVE_OPTION) {
   fileName = chooser.getSelectedFile().getPath();
   lastDirectory = chooser.getSelectedFile();
}

1voto

A.Mohamed Bilal Points 115

JFileChooser Chooser = new JFileChooser("F :") ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X