java全路径格式_关于java:完全限定路径Vs. 规范路径

Java中有一个规范路径概念。

WinApi中有一条完全合格的路径。

我很清楚规范路径是什么,但我不理解完全合格路径的概念。

对于文件或目录,完全排序的路径只存在一件事吗? 类似的规范路径。

它们都是完全相同的概念吗?

编辑:

还有一件事,

符号链接或硬链接是否属于完全限定路径?

编辑

我问维护命名文件,路径和命名空间页面的人让我知道这一点。

他回答说。

这也是完全合格的路径吗?

C:目录 ..目录 file.txt的

Technically that is a relative path because it contains the double dot (..) and some APIs do not process those correctly (the docs will clearly state that it needs a fully qualified path).

The two are mutually exclusive.

他的意思是,在我的猜测中,如果我们将一个像这样的"C: directory .. directory file.txt"的参数放到函数所需的完全限定路径中,该函数永远不会重新解释路径然后失败。

如果是这样,完全限定的路径与规范路径完全相同。 不是吗

这完全是奇怪的。 我认为在Unix上..节点实际上是EXISTS。 因此,"stuff /../ otherstuff"是完全合格的,并且一个愚蠢地处理它的软件将完美地工作,因为..只是另一个目录。 如果它不是在windowsland那么它只是另一种奇怪的东西,非常适合手工制作更多的角柜。 (典型的MS方式)

"完全合格的道路"是"绝对路径"的同义词

"完全限定"和"绝对路径"意味着相同的事情 - 与隐含或指定的上下文无关的路径。

每条路径都是完全限定的路径,否则它是相对路径

文件系统上的每个位置都有许多可用于引用它的路径,包括许多完全限定的路径:

C: TEMP.TXT

C: Program Files .. temp.txt

C: Program Files Microsoft .. .. temp.txt

等等

从概念上讲,其中一条完全合格的路径是指定该资源的最简单,最直接的方式 - 这是您的规范路径。

For a file or directory, does fully-qulified path exist only one thing? -like canonical path.

Ok.

不,完全限定路径是任何不是相对路径的路径(不相对于隐含或指定上下文的当前目录)。多个但不同的完全限定路径可以引用文件系统上的相同位置。重读:

Java中的getPath(),getAbsolutePath()和getCanonicalPath()之间的区别是什么?

但在所谓的"绝对"的地方替换"完全合格"。

为了清楚起见,有些人还会使用术语"相对路径"来引用其中包含"相对引用"(双点..)的路径。例如,有些人可能会因为双点而将C:\Program Files\Microsoft\\..\temp.txt称为"相对路径",但我会将其称为带有相对引用的完全限定路径。希望从对话中可以清楚地看出,当他们说"相对路径"(相对于上下文或具有相对引用的路径的路径)时,它们的含义是什么。

Are both of them totally same concepts?

Ok.

不,如另一个SO问题所示,有很多方法可以指定一个位置的完全限定路径(绝对路径),但只有一个完全限定路径被认为是该位置的规范路径。

One more thing, Is a UNC path belong to fully-qualified path too?

Ok.

是的,UNC路径不是相对路径;他们是完全合格的道路。 - http://msdn.microsoft.com/en-us/library/aa365247(v=VS.85).aspx#fully_qualified_vs._relative_paths

Is a symbolic link or a hard link belong to Fully qualified path?

Ok.

它是一个独立的概念。路径(无论是相对路径还是完全合格路径)都会导致文件系统中的某个位置。该位置的实体可以是许多内容之一:普通文件,目录,符号链接,硬链接,设备,命名管道等。符号链接或硬链接具有导致您在该位置实际查找的数据。

比喻时间

您可以根据指向某人家的方向来考虑路径和链接:

相对路径是您当前位置的路线

一条完全合格的道路是来自市政厅的方向,无论您身在何处

在我们奇怪的小镇Unixville,每个人都同意并理解,"完全合格的方向"总是从市政厅开始,奇怪的是,每个人都称之为"/"。

下一个城镇(Windowsville)有多个市政厅(每个城镇一个),称为C:\,D:\,E:\等。

不同的人可能会给你不同的方向(路径)去同一个房子,即使他们都从同一个起点(市政厅)开始 - 一些方向将比其他方向更直接。

规范的道路是完全合格的方向,是从市政厅到所需房屋的最简单,最直接的方式

符号链接就像一个空的批次,带有一个注释,指示转发地址

引导你到这里的方向类型(无论是相对方向,完全合格的方向,甚至是规范的完全合格的方向)与它是否通向房屋或任何空转地点无关

有一个奇怪的情况,你方向的一条街道实际上是一个象征性的链接(一个绕行?一个门户?) - 如果我们仔细观察它,这里的类比会分崩离析,所以让我们忽略它:-)

硬链接是可从两个或多个不同地址访问的房屋。

想想榆树街和主街拐角处的房子。邮局错误地给了它两个地址:10 Elm Str和20 Main Str。无论你去哪个地址,你最终都会在同一所房子里。

在我们这个奇怪的小镇,这些硬链接的房子可以有多个地址,地址不必彼此靠近。

无论你去哪个地址,它都是同一栋房子。它不是副本,它不是转发地址。只是神奇地说,一旦你进去,你最终会在同一所房子里,不管你曾经去过哪个地址。

引导你进入房子的方向(无论使用哪个地址,或方向是相对方向,完全合格的方向,甚至是规范的完全合格的方向)都与那个地址的房子是否很难有关 - 连接房子与否

附录

编辑

我问维护命名文件,路径和命名空间页面的人让我知道这一点。

他回答说。

这也是完全合格的路径吗?

C:目录.. 目录 file.txt的

BLOCKQUOTE>

我想知道该页面的维护者用什么术语来区分..\file.txt和C:\directory\..\directory\file.txt,因为他将它们称为相对路径。我同意双点是相对参考,但我不会将整个路径标记为相对路径,因为它在中间有双点。在他的术语中,完全合格和规范之间似乎没有区别。 (其中,我认为,这是你问题的根源)。

我来自Unix和Java背景,所以也许这会带来不同。据我所知:

相对/部分限定 - 如果没有相关的上下文提供信息,则无法确定位置,例如当前工作目录,当前驱动器,驱动器的当前目录,shell PATH设置,Java CLASSPATH设置或引用URL。

绝对/完全限定 - 位置独立于关联的上下文,即无论当前工作目录,当前驱动器,驱动器的当前目录,shell PATH设置,Java CLASSPATH设置或引用,位置都是相同的URL。

规范 - 最简单的完全合格,即没有双点

所以

.. file.txt - 亲戚

C: directory .. directory file.txt - 完全限定

C: directory file.txt - 完全限定和规范

MSDN页面的那一部分在C:\directory\..\directory\file.txt上不明确:如果C:\directory\..\directory\file.txt被认为是相对的,并且不能用于Windows API,它们说它们需要一个完全合格(但不一定是规范的?)路径,我会建议页面需要更清楚。

Fully-qualfied vs Relative

Ok.

A file name is relative to the current directory if it does not begin with one of the following:

Ok.

...

* A disk designator with a backslash, for example"C:\" or"d:\".

...

Ok.

由于C:\directory\..\directory\file.txt以带有黑名单的磁盘指示符开头,因此该路径是完全限定的,而不是相对的。

如果路径包含"双点",则该路径也称为相对路径;也就是说,路径的一个组成部分中有两个周期。此特殊说明符用于表示当前目录上方的目录,也称为"父目录"。此格式的示例如下:

".. tmp.txt"指定位于当前目录的父级中的名为tmp.txt的文件。

".... tmp.txt"指定一个文件,它是当前目录上方的两个目录。

".. tempdir tmp.txt"指定名为tmp.txt的文件,该文件位于名为tempdir的目录中,该目录是当前目录的对等目录。

BLOCKQUOTE>

我解释这个短语包含双点意味着领先的双点。 示例仅显示前导双点。 术语"当前目录"通常表示进程的当前工作目录或驱动器的当前目录,仅在讨论前导双点时才有意义。 但是,我可以看到如何以另一种方式解释该部分。

无论如何,每个人的成长都不同,背景也是王道,所以我想每个人在阅读文档或与不同背景的工程师讨论"完全合格"与"相对"的含义时,需要注意细微差别。

好。

您开车穿过街道中间的门户网站,最后到达符号链接的目的地;)

我建议页面需要更清楚。 是的,我也一样!

+1为附录。

+1,很好的彻底解释。

恕我直言,完全限定路径只允许您以明确的方式查找资源(独立于当前工作目录,PATH环境等),但两条不同的路径可以识别相同的资源。

我不知道windows方式知道两个路径是否指向同一个文件。

它没有。 利用这个是将相同的dll多次映射到内存中的一种方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值