Создание допустимых имен файлов в Java - PullRequest
5 голосов
/ 02 октября 2009

Я создаю имена файлов на основе динамических значений, таких как название компании и имя / фамилия.

Затем я хотел бы проверить правильность имени файла, прежде чем пытаться создать файл. То есть проверьте, что он не содержит недопустимых символов, и замените их, если они есть.

Конечно, я мог бы просто использовать регулярное выражение, но мне было интересно, существует ли существующий метод в чем-то вроде commons-lang или commons-io, который делает это?

Ответы [ 2 ]

5 голосов
/ 02 октября 2009

В Java 7 новый метод java.nio.file.Paths.get(String path) выдаст InvalidPathException, если путь содержит недопустимые символы для конкретной файловой системы, но в Java 6 или более ранней версии такой функции, к сожалению, нет.

Поскольку разрешенные символы в имени файла и его длина сильно зависят от платформы (или даже файловой системы), у вас может не быть лучшего выбора, чем попытаться создать файл и посмотреть, не получится ли это. В Java 6 создание FileOutputStream с недопустимым путем вызовет довольно неопределенное исключение FileNotFoundException.

3 голосов
/ 02 октября 2009

Ну, вы должны удалить его, даже если оно является допустимым именем файла, поскольку оно может содержать путь, и в этом случае пользователь может указать ../../../../. ./../../../etc/passwd и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...