This question already has answers here:
How to construct a relative path in Java from two absolute paths (or URLs)?
                                
                                    (22个答案)
                                
                        
                                20天前关闭。
            
                    
如果我有一个路径/ 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

09-07 05:50