给定像 /a/./b/c/../d
这样的路径,我想删除所有“当前目录”指示符(即句点)和“父目录”指标(即 ..),给出 a/b/d
。
我可以使用 File.getCanonicalPath()
,但这也会解析我不想要的符号链接(symbolic link)。
有什么简单的方法吗?也就是说,比编写分词器并自行处理更简单。
如果您能告诉我“.”的正确名称,可加分和 '..' 在这种情况下。
最佳答案
Guava 也有这个作为 Files.simplifyPath(String)
.不过,您最好的选择(如果您可以使用 JDK7)是将您的路径表示为 Path
并使用 Path.normalize()
获得规范化版本。
关于java - 使用 .. 父目录说明符 ("dot dot"解析路径名)而不解析符号链接(symbolic link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281286/