路径处理工具

题目描述

我需要一个路径处理工具, 用于处理路径相关的问题, 需要提供的功能有

  • parent eg: Path(a/b/c.xml).getParent() == Path(a/b/)
  • filename eg: Path(a/b/c.xml).getFilename() == String(c.xml)
  • resolve eg: Path(/).resolve(a/b/c.xml) == Path(/a/b/c.xml)
  • relativize eg: Path(a/b).relativize(a/b/c.xml) == Path(c.xml)
  • iterator 路径迭代
  • compareTo 路径比较
  • getPath 获取某一段路径 Path(a/b/c.xml).getPath(2) == Path(b)
  • subPath 路径截取 Path(a/b/c.xml).subPath(1,3) == Path(b/c.xml)
  • toString 路径输出 Path(a/b/c.xml).toString() == String(a/b/c.xml)
  • normalize 规范化路径 Path(a/b//c.xml).normalize() == Path(a/b/c.xml)

只需要支持 linux / 路径, 不需要支持 windows \ 路径

使用方式要求和 java.nio.Path 类似

题目来源及自己的思路

使用了 java.nio.Path 类, 发现有些情况下有 bug , 并且 toString 输出为 windows 路径在有些情况下有问题

使用了 java.net.URI 类, 不能满足 parent 功能

求一个好的路径工具类, 或者 lib 包

阅读 956
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题