代码之家  ›  专栏  ›  技术社区  ›  Benjamin

完全限定路径与规范路径

  •  19
  • Benjamin  · 技术社区  · 14 年前

    Java中有一个规范的路径概念。
    WinApi中有一个完全限定的路径。

    fully-qualified path's concepts .

    对于文件或目录,完全限定的路径是否只存在一种情况?-就像经典路径。

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

    :
    还有一件事, 符号链接还是硬链接属于完全限定路径?

    编辑
    我问了一个 Naming Files, Paths, and Namespaces 呼叫让我知道这一点。

    这也是完全限定的路径吗?

    从技术上讲,这是一个相对路径,因为它包含双点(…),并且一些api不能正确处理这些路径(文档将明确指出它需要一个完全限定的路径)。
    这两者是相互排斥的。

    他的意思是,我猜,如果我们把一个参数像这样“C:\directory\..\directory”\文件.txt对于函数所需的完全限定路径,函数从不重新解释路径,然后失败。

    2 回复  |  直到 10 年前
        1
  •  43
  •   Community CDub    8 年前

    “完全限定路径” 是同义词 “绝对路径”

    • “绝对路径” 意思是同一件事-一条与隐含的或指定的上下文无关的路径。
    • 每一条路都不是一条路 否则它就是一个 相对路径
    • :

      • C类:\温度.txt
      • C:\程序文件\\温度.txt
      • 等。
    • 从概念上来说 完全限定路径 标准路径 .

    对于文件或目录,完全限定的路径是否只存在一种情况?-就像经典路径。

    What's the difference between getPath(), getAbsolutePath(), and getCanonicalPath() in Java?

    但在“绝对”的地方用“完全合格”代替。

    .. )在它里面。例如,有些可能会被称为 C:\Program Files\Microsoft\\..\temp.txt 一个“相对路径”,因为双点,但我会称之为一个完全限定路径与相对引用。希望从对话中可以清楚地看出他们所说的“相对路径”(相对于上下文的路径或其中包含相对引用的路径)是什么意思。

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

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

    还有一件事,UNC路径也属于完全限定路径吗?

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

    这是一个独立的概念。路径(不管是相对路径还是完全限定路径)指向文件系统中的某个位置。位于该位置的实体可以是许多内容之一:普通文件、目录、符号链接、硬链接、设备、命名管道等。符号链接或硬链接具有元数据,这些元数据指向您在该位置实际查找的数据。

    类比时间

    你可以根据到某人家的方向来考虑路径和连接:

    • 相对路径
      • / ".
      • 下一个城镇(Windowsville)有多个市政厅(城镇的每个部分有一个市政厅),称为 C:\ D:\ , E:\ 等等。
    • 从市政厅到所需房屋的最简单、最直接的方式是完全合格的方向吗
    • 符号链接 就像一个空白的地方,上面有一张纸条,可以给转发地址指明方向
      • 有一个奇怪的例子,在你的方向的一条街道实际上是一个象征性的链接(绕道?入口?)-如果我们看得太仔细的话,这个类比就会分崩离析,所以让我们忽略它:-)
    • 硬链接 从两个或多个不同的地址可以到达的房子。
      • 10 Elm Str 20 Main Str . 不管你去哪一个地址,你最终都会在同一所房子里。
      • 在我们这个陌生的小镇上,这些硬连接的房子可以有多个地址,而且地址之间不必太近。
      • 不管你去哪一个地址,它都是同一所房子。它不是副本,也不是转发地址。只是神奇的是,一旦你进去,你最终会在同一所房子里,不管你以前去哪一个地址。

    附录

    编辑

    我请维护命名文件、路径和名称空间页面的人告诉我这一点。 他回答我。

    C:\目录..\目录\文件.txt

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

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

    • 相对/部分合格

    • -位置独立于关联的上下文,即,无论当前工作目录、当前驱动器、驱动器的当前目录、shell路径设置、Java类路径设置或引用URL如何,位置都是相同的。

    • -最简单的完全限定,即没有双点

    所以呢

    • ..\文件.txt- 相对的
    • C:\目录\…\目录\文件.txt- 完全合格
    • C:\目录\文件.txt- 完全合格和规范的

    那个 section of the MSDN page C:\目录\…\目录\文件.txt :如果 C:\目录\…\目录\文件.txt 被认为是相对的,不适用于需要完全限定(但不一定是规范的)的Windows API帕斯,我建议佩奇说得更清楚些。

    完全合格与相对合格

    如果没有开始

    ... * 带有反斜杠的磁盘指示符,例如“C:\”或“d:\”。

    C:\目录\…\目录\文件.txt

    一条路也被称为 如果包含“双点”则为相对 用于表示当前目录上方的目录

    • "..\tmp.txt文件“指定一个名为tmp.txt文件位于当前目录的父目录中。
    • "....\tmp.txt文件“指定一个文件,该文件位于当前目录上方的两个目录中。
    • “.\tempdir”\tmp.txt文件“指定一个名为tmp.txt文件位于名为tempdir的目录中,该目录是当前目录的对等目录。

    我解释了这个短语 包含双点 意思 主要的 双点。示例仅显示前导双点。术语“当前目录”通常是指进程的当前工作目录或驱动器的当前目录,只有在谈到前导双点时才具有方向性。然而,我可以看到如何用另一种方式解释这一节。

    不管怎样 ,每个人的成长都是不同的,背景是最重要的,所以我想每个人在阅读文档或与不同背景的工程师讨论“完全合格”与“相对”的含义时,都需要注意细微差别

        2
  •  0
  •   Pavel Radzivilovsky    14 年前

    不,完全限定路径只允许您以明确的方式(独立于当前工作目录、路径环境等)查找资源,但是两个不同的路径可以标识相同的资源。