Как получить правильный путь в Java, используя JFileChooser в соответствии с операционной системой - PullRequest
0 голосов
/ 18 апреля 2011

В моем Java-приложении мне нужно выбрать путь, используя JFileChooser. Код, который я написал, выглядит следующим образом:

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 ");
}

Я получаю путь правильно. Например, здесь я получаю путь (в ОС Windows)

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

Теперь на самом деле я хочу создать еще один каталог по заданному пути (т.е. внутри каталога новой папки) программно.

Для этого у меня есть новое имя каталога "newdir", поэтому строка, переданная конструктору файлов для создания этого каталога, выглядит следующим образом:

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

Теперь проблема заключается в том, что мое приложение может работать в Windows или в Linux, поэтому в зависимости от того, какой разделитель пути к файлу меняется (т. Е. «/» Для Windows и «\» для Linux)

Как мне преодолеть эту проблему, чтобы получить косые черты в пути в соответствии с ОС?

Ответы [ 2 ]

6 голосов
/ 18 апреля 2011

new File(choosedPath, "newDir");

Зависимый от платформы разделитель файлов будет выбран автоматически.

Вы также можете использовать File.separator, чтобы получить зависимый от платформы разделитель для построения строки, но вы закончите большим количеством кода, чем первое решение.

3 голосов
/ 18 апреля 2011

Используйте File.separator вместо / или \.

...