Java-путь к файлу на сервере должен иметь двойную обратную косую черту

У меня есть графический интерфейс Java. Пользователь выбирает в диалоговом окне JFileChooser файл, включая путь к файлу. Путь отображается в текстовом поле, например.

\\developDB\directory\subdirectory\file.info

Когда я получаю доступ к файлу с помощью InputStream, используя путь, выбранный пользователем (и отображаемый в текстовом поле), он не находит файл. Упс.

Теперь я удваиваю все обратные косые черты в текстовом поле. то есть

\\developDB\\directory\\subdirectory\\file.info

и снова прочитайте с помощью InputStream путь из текстового поля, и теперь файл найден. Упс снова.

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

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

Я думал, что это может быть связано, возможно, с двумя причинами:

  • JFileChooser по какой-то причине «съедает» обратную косую черту. Как этого можно было избежать?
  • JFileChooser работает нормально, но администратор сервера, на котором хранится файл, установил некоторые соглашения об именах для имени пути. Если да, то как я могу узнать об этих стандартах в программе Java, чтобы программно удвоить обратную косую черту.

Надеюсь, я вас не сильно запутал ;-)


person Guido    schedule 21.01.2013    source источник


Ответы (1)


Если вы используете стандартную библиотеку ввода-вывода Java (java.io.FileInputStream и т. д.), вы можете использовать только косую черту, Java будет переводить в ожидании на работающей платформе.

person PeterMmm    schedule 21.01.2013
comment
@PetrMmm, это также справедливо, когда клиентская платформа отличается от серверной? - person Guido; 21.01.2013
comment
Вы читали это? docs.oracle.com/javase/1.5. 0/docs/api/java/io/File.html - person PeterMmm; 21.01.2013