nio2:检测“..”和类似元素
nio2: detect '..' and suchlike elements
我希望使用传递给我的字符串作为参数作为路径名的元素。我不想被 'Little Bobby Tables' 困扰。也就是说,我不希望“..”是可以接受的。我希望它可以与任意 NIO2 FileSystem
一起使用,因此仅查找字符串 ..
是不够的。我可以进行一些检查,例如 !path.isAbsolute()
和 path.getNameCount() == 1
以过滤掉其他问题案例,但除了将其传递给 resolve
并查找错误的名称计数之外,我还能做任何其他事情吗判断它是否具有 ..
?
的语义
toRealPath()
大部分是答案。解决后路径上的方法为您提供
解析父级(例如“..”)和链接后的真实路径。
然后您可以使用 root.startsWith( 路径 ) 快速检查它是否在您的子树中。
但是:仅适用于现有文件。
我希望使用传递给我的字符串作为参数作为路径名的元素。我不想被 'Little Bobby Tables' 困扰。也就是说,我不希望“..”是可以接受的。我希望它可以与任意 NIO2 FileSystem
一起使用,因此仅查找字符串 ..
是不够的。我可以进行一些检查,例如 !path.isAbsolute()
和 path.getNameCount() == 1
以过滤掉其他问题案例,但除了将其传递给 resolve
并查找错误的名称计数之外,我还能做任何其他事情吗判断它是否具有 ..
?
toRealPath()
大部分是答案。解决后路径上的方法为您提供 解析父级(例如“..”)和链接后的真实路径。
然后您可以使用 root.startsWith( 路径 ) 快速检查它是否在您的子树中。
但是:仅适用于现有文件。