2011-04-18 5 views
0

Dans mon application Java, j'ai besoin de sélectionner un chemin en utilisant JFileChooser. Le code que je l'ai écrit est la suivante:Comment obtenir le chemin correct dans Java en utilisant JFileChooser selon le système d'exploitation

jfChooser = new JFileChooser(); 

jfChooser.setCurrentDirectory(new java.io.File(".")); 

jfChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
if (jfChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { 
System.out.println("getCurrentDirectory(): "+ jfChooser.getCurrentDirectory()); 
System.out.println("getSelectedFile() : "+ jfChooser.getSelectedFile()); 
tfPath.setText(jfChooser.getSelectedFile().getAbsolutePath()); // the selected path set to textfield which is lated get by the program 
} 
else { 
System.out.println("No Selection "); 
} 

Je reçois le chemin exemple properly.For, ici, je reçois le chemin (en os de Windows)

String choosedPath=tfPath.getText().trimm(); 

Maintenant, en fait je veux créer un autre répertoire sur un chemin donné (ie dans le répertoire newfolder) par programmation.

Pour que j'ai nom du nouveau répertoire « newdir » si la chaîne passée au constructeur de fichier pour la création de ce répertoire est la suivante:

File createFolder = new File("choosedPath"+"\\"+"newdir"); 

Maintenant, le problème est que mon application peut fonctionner sur Windows ou peut fonctionner sous Linux, le séparateur de chemins de fichiers varie (ie '/' pour windows et '\' pour linux)

Comment surmonter ce problème pour obtenir des barres obliques dans le chemin selon OS?

+0

Vous devriez jeter un coup d'œil à la [sandbox de formatage] (http://meta.stackexchange.com/questions/3122/formatting-sandbox) et apprendre à formater votre code pour votre prochaine question – justkt

+0

@ justkt- Ok friend –

+0

En Java, vous pouvez utiliser des barres obliques sur les chemins de fichiers Windows et Java le gérera. Comme d'autres l'ont dit File.Seperator est la bonne solution agnositc OS. Vous pouvez vous en sortir en utilisant une barre oblique partout cependant. – Jberg

Répondre

5

new File(choosedPath, "newDir");

séparateur fichier dépendant de la plateforme va être choisir automatiquement.

Vous pouvez également utiliser File.separator pour obtenir un séparateur dépendant de la plateforme pour construire la chaîne, mais vous allez vous retrouver avec plus de code que la première solution.

Questions connexes