当前位置: 首页 > 面试题库 >

如何用两个绝对路径(或URL)在Java中构造一个相对路径?

师成弘
2023-03-14
问题内容

给定两个绝对路径,例如

/var/data/stuff/xyz.dat
/var/data

如何创建以第二条路径为基础的相对路径?在上面的示例中,结果应为:./stuff/xyz.dat


问题答案:

有点回旋处,但是为什么不使用URI?它具有相对方法,可以为你进行所有必要的检查。

String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath();
// relative == "stuff/xyz.dat"

请注意,文件路径java.nio.file.Path#relativize自Java 1.7起就存在,如@Jirka Meluzin在其他答案中指出的那样。



 类似资料:
  • 问题内容: 我有一个生产和开发服务器。问题是目录结构。 发展: 生产: 我如何在两个服务器上使用一个in 文件夹来使用该属性的相同路径?我可以在相对路径中使用技巧吗? 问题答案: 该URL 相对于CSS文件的位置,因此这应该对您有用: 相对URL返回两个文件夹,然后返回该文件夹-只要结构相同,它就适用于两种情况。 从https://www.w3.org/TR/CSS1/#url 部分URL是相对于

  • 问题内容: 我想在python中构造一个绝对路径,而与此同时却对诸如路径分隔符之类的东西一无所知。 edit0: 例如,在我的文件系统的根目录上(或在w32上)有一个目录,而我只想根据这些元素来构造该目录,并且(在w32上,我可能还需要一个磁盘ID,例如) 为了不必担心路径分隔符,显然是首选工具。但这似乎只会创建 相对 路径: 添加虚拟的第一元素(例如)没有任何帮助: 将第一个元素设为绝对显然会有

  • 问题内容: 说,我有两条绝对路径。我需要检查其中一条路径所指的位置是否为另一条路径的后代。如果为true,则需要从祖先找出后代的相对路径。用Python实现此功能的好方法是什么?我可以受益于任何图书馆? 问题答案: os.path.commonprefix()和os.path.relpath()是您的朋友: 因此,您可以测试公共前缀是否是路径之一,即,其中一个路径是否是公共祖先: 然后,您可以找到

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 问题内容: 节点中是否有类似“ path.resolve”的API?还是有什么可以做的? 例如(nodejs代码): 应该得到: 问题答案: 解决(表示用户的家)是另一回事,通常是由外壳来解决。。 如果要通过Go代码执行此操作,则可以使用该函数获取有关当前用户的详细信息,包括其主文件夹(即)。但是,您仍然必须自己替换它。 原始答案如下。 您可以使用或。 例如: 输出: 您可以使用和从路径中“删除”

  • 主要内容:什么是当前工作目录,什么是绝对路径与相对路径,Python处理绝对路径和相对路径在介绍绝对路径和相对路径之前,先要了解一下什么是当前工作目录。 什么是当前工作目录 每个运行在计算机上的程序,都有一个“当前工作目录”(或 cwd)。所有没有从根文件夹开始的文件名或路径,都假定在当前工作目录下。 注意,虽然文件夹是目录的更新的名称,但当前工作目录(或当前目录)是标准术语,没有当前工作文件夹这种说法。 在 Python 中,利用 os.getcwd() 函数可以取得当前工作路径的字