Как преобразовать строку в имя файла - PullRequest
0 голосов
/ 05 февраля 2012
  public class saveButtonListener implements ActionListener{
      public void actionPerformed(ActionEvent ev){
         JFileChooser chooser= new JFileChooser();

          String s=(String)searchedResultArea.getSelectedValue();// ??? 
    }
  }
  Object s=searchedResultArea.getSelectedValue();

Я разработал программу, которая сохраняет имя файла некоторых изображений, которые пользователь указывает в файле, и отображает их в JList.Я сохранил их в этом формате

   E:\something\something\something.jpg

Теперь мне нужно открыть эту картинку, используя это значение.Моя проблема в том, что я не могу преобразовать эту строку в правильное имя файла, которое использует Java, например

    E:\\something\\something\\something.jpg

Надеюсь, вы поняли.Мне нужны две обратные косые черты.Как мне это сделать?

Ответы [ 4 ]

5 голосов
/ 05 февраля 2012

Вам не нужно ничего преобразовывать. Строка в порядке с одной косой чертой. 2-я косая черта нужна только в том случае, если вы вводите ее вручную в коде.

3 голосов
/ 05 февраля 2012

"\" используется для экранирования символа "\" в исходном коде . Путь разделителя на Windiows все еще "\". Если вы получили путь от пользовательского ввода, то тут делать нечего.

2 голосов
/ 05 февраля 2012

В Java правильный способ представления имен файлов - это "прямые" косые черты ('/'), которые будут работать независимо от вашей операционной системы.«Обратная косая черта» ('\') - это аномалия в Windows, которую следует игнорировать при обработке файлов в Java.

Итак, просто используйте «прямую косую черту».

Для преобразования имен файлов выполните

filename = filename.replaceAll("\\", "/");

(вам нужен двойной обратный слеш, потому что в Java для экранирования специальных символов используется один обратный слеш)

0 голосов
/ 05 февраля 2012

Не сработает ли это:

String fileName = // from JList
File f = new File(fileName);
...