Согласно этой странице Википедии , API-интерфейсы Windows трактуют '/' как эквивалентное '\'. Поэтому, даже если вам как-то удастся внедрить символ '/' в компонент имени пути в (например) объект File
, есть вероятность, что Windows в какой-то момент будет воспринимать его как разделитель пути.
Итак, ваши лучшие варианты:
- Пусть Windows обрабатывает '/' как обычно; т.е. пусть он обрабатывает символ как разделитель пути.
- Как и выше, но с предупреждением для пользователя о '/'.
- Проверьте наличие символов '/' AND '\' и отклоните оба, сказав, что имя файла (то есть компонент имени пути) не может содержать разделителей имени пути.
(Лучшие из лучших зависят от деталей вашего заявления; например, можете ли вы сообщить о проблемах человеку, который ввел поддельное имя файла.)
Если вы попытаетесь трактовать '/' иначе, чем '\', вы рискуете создать больше проблем, чем решаете; например если ваше приложение должно быть в сценарии. Если вы молча раздеваете одного или обоих персонажей (или превращаете их во что-то другое), существует риск, что вы создадите дополнительные проблемы; например неожиданные коллизии путей.
(Первоначально я предложил использовать конструктор File(URL)
для URL-адреса «file:» с символом% -escaped '/'. Но даже если это работает на стороне Java, он не будет работать на стороне Windows. ) * * тысяча двадцать-один