首页 > 解决方案 > 如何在java或groovy中编写相当于python的os.path.relpath()

问题描述

如果我有一个路径 /a/b/c/d/e 并且我想从根目录中删除一些路径 - 例如从中删除 /a/b/c 以获得 /d/e 它非常简单在蟒蛇中:

os.path.relpath("/a/b/c/d/e", "/a/b/c")

问题是如何在 java 中实现这一点。到目前为止,我想出的最好的想法是为每个路径创建一个路径,创建一个迭代器,在其上循环并创建一个路径数组。然后检查每个数组的大小(上例中的 5 和 3),然后从第 4 个位置重建路径...非常麻烦..

标签: javapythongroovypath

解决方案


在 Groovy 中:

def rootPath = new File('/a/b')
def fullPath = new File('/a/b/c/d')

def relPath = new File(root.toURI().relativize(full.toURI()).toString())

资源


推荐阅读