У меня есть графический интерфейс Java. Пользователь выбирает в диалоговом окне JFileChooser файл, включая путь к файлу. Путь отображается в текстовом поле, например.
\\developDB\directory\subdirectory\file.info
Когда я получаю доступ к файлу с помощью InputStream, используя путь, выбранный пользователем (и отображаемый в текстовом поле), он не находит файл. Упс.
Теперь я удваиваю все обратные косые черты в текстовом поле. то есть
\\developDB\\directory\\subdirectory\\file.info
и снова прочитайте с помощью InputStream путь из текстового поля, и теперь файл найден. Упс снова.
Вы можете подумать, что причиной этого может быть то, что обратную косую черту нужно экранировать другой обратной косой чертой, но здесь причина не в этом. Внутри Java снова удваивает обратную косую черту для побега.
Также, когда я пытаюсь получить доступ к файлу через веб-браузер, обратная косая черта должна быть удвоена.
Я думал, что это может быть связано, возможно, с двумя причинами:
- JFileChooser по какой-то причине «съедает» обратную косую черту. Как этого можно было избежать?
- JFileChooser работает нормально, но администратор сервера, на котором хранится файл, установил некоторые соглашения об именах для имени пути. Если да, то как я могу узнать об этих стандартах в программе Java, чтобы программно удвоить обратную косую черту.
Надеюсь, я вас не сильно запутал ;-)