是否有任何标准化的跨平台方法来表示相对文件路径?

Is there any standardized, cross-platform, way to represent relative file paths?

提问人:Ethan McCue 提问时间:11/10/2023 更新时间:11/10/2023 访问量:18

问:

我正在开发一个工具来处理JVM上的依赖关系解析。我希望用户以包 url 的形式向我提供 maven 坐标,然后我输出包含其依赖项的文件路径列表。

jresolve pkg:maven/com.fasterxml.jackson.core/[email protected]
/Users/emccue/.jresolve/cache/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar:/Users/emccue/.jresolve/cache/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar:/Users/emccue/.jresolve/cache/https/repo1.maven.org/maven2/com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar

因为这打算用于 ,我还支持在文件系统上提供路径,这些路径将按原样转发到生成的路径上。--class-path

jresolve some/path
some/path

我的问题是,我真的让人们用 来指定文件路径,因为这是一个实际的 url 和标准化格式。file:///

jresolve file:///some/path
/some/path

一个非常巧妙的属性是,我可以轻松地将其转换为特定于操作系统的路径。

\some\path

但是以这种方式指定的路径是我找到的每个规范的绝对路径。因此,前斜杠。

所以我的问题是:是否有任何格式具有标准或事实上的标准,可以以与操作系统无关的方式表示相对文件路径?

Linux Windows URL 文件系统 标准

评论

0赞 Diego Torres Milano 11/10/2023
RFC 3986 定义了相对引用:rfc-editor.org/rfc/rfc3986#page-26
0赞 michael 11/10/2023
“我真的想让人们用 file:/// 指定文件路径......”——对不起,我不明白这一点,因为根据定义,这是一个绝对路径;与操作系统无关的相对文件路径从字面上看是这样的形式(如果我误解了这个问题,请原谅我,但恕我直言,绝对引用通常是一件坏事,因为人们不喜欢和/或由于他们无法控制的原因无法指定与其系统根目录相关的内容)some/pathfile:///

答: 暂无答案