java - 如何在java或groovy中编写相当于python的os.path.relpath()

标签 java python groovy path

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

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

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

最佳答案

在 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())

Source

关于java - 如何在java或groovy中编写相当于python的os.path.relpath(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60140707/

相关文章:

java - Sql 中的 BIGINT 与 Java 中的 BigInteger 之间的映射

java - Tomcat强制关闭可以通过异常类型的catch block 捕获吗

python - 如何使用 PySpark 2.4.5 评估分类器

python - 如何从浏览器打印 Python NLTK 输出(在 Django 中)

grails - 无法通过Grails 3中的g:select检索数据

java - GEF 中的 SVG 图像

java - Junit 和 Hamcrest 中的论证顺序

python - 由于 pymssql 的未知原因,连接到数据库失败

testing - 作为 groovy 测试步骤之一,是否可以通过 groovy 脚本启动/停止模拟服务?

java - 默认情况下,Groovy 是否自动将 boolean 值装箱为对象?