Я хочу использовать переданную мне строку в качестве параметра в качестве элемента имени пути. Я не хочу, чтобы меня беспокоили «Маленькие столы Бобби». То есть я не хочу, чтобы «..» было приемлемым. Я хочу, чтобы это работало с произвольным NIO2 FileSystem
, поэтому просто искать строку ..
недостаточно. Я могу сделать некоторые проверки, такие как !path.isAbsolute()
и path.getNameCount() == 1
, чтобы отфильтровать другие проблемные случаи, но могу ли я сделать что-нибудь, кроме как передать его resolve
и искать неверный счетчик имен, чтобы определить, имеет ли он семантику ..
?
nio2: обнаружить «..» и подобные элементы
Ответы (1)
к реальному пути ()
В основном ответ. Метод пути после разрешения дает вам реальный путь после разрешения родителя (например, «..») и ссылок.
Затем вы можете использовать root.startsWith( path ), чтобы быстро проверить, находится ли он в вашем поддереве.
Но: Работает только для существующих файлов.
person
openCage
schedule
13.03.2017