java - 使用 .. 父目录说明符 ("dot dot"解析路径名)而不解析符号链接(symbolic link)

标签 java file filesystems guava apache-commons

给定像 /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/

相关文章:

java - 当查询相同的 ID 时,存储库是否应该始终在内存中返回相同的引用?

linux - 使用 awk 的脚本中出现未知错误

linux - 在 ext4 上覆盖一个小文件是原子的吗?

linux - Unix和Linux中的 ‘dot’和 ‘dot dot’文件是真实文件吗?

C# Linq 查询在多个文本文件中搜索单个关键字

小程序中的 java.lang.reflect.invokingtargetexception 错误

java - 如何在 Spring 中将 Multipart 文件作为字符串读取?

java - java判断文件是否存在

php - 当文件(已删除扩展名)和文件夹同名时如何正确链接?

java - 如何减少 Java 中 ImageIcon 双数组的执行时间