Ben*_*min 19 java windows winapi path
Java中有一个规范路径概念.
WinApi中有一条完全合格的路径.
我很清楚规范路径是什么,但我不理解完全合格路径的概念.
对于文件或目录,完全排序的路径只存在一件事吗?类似的规范路径.
它们都是完全相同的概念吗?
编辑:还有
一件事,符号链接或硬链接是否属于完全限定路径?
编辑
我问维护命名文件,路径和命名空间页面的人让我知道这一点.
他回答说.
这也是完全合格的路径吗?
C:\目录\ .. \目录\ file.txt的
从技术上讲,这是一个相对路径,因为它包含双点(..),而某些API不能正确处理它们(文档将明确指出它需要一个完全限定的路径).
这两者是相互排斥的.
他的意思是,在我的猜测中,如果我们将一个像这样的"C:\ directory\..\directory\file.txt"的参数放到函数所需的完全限定路径中,该函数永远不会重新解释路径然后失败.
如果是这样,完全限定的路径与规范路径完全相同.不是吗
Ber*_*t F 42
文件系统上的每个位置都有许多可用于引用它的路径,包括许多完全限定的路径:
从概念上讲,其中一条完全合格的路径是指定该资源的最简单,最直接的方式 - 这是您的规范路径.
对于文件或目录,完全排序的路径只存在一件事吗?类似的规范路径.
不,完全限定路径是任何不是相对路径的路径(不相对于隐含或指定上下文的当前目录).多个但不同的完全限定路径可以引用文件系统上的相同位置.重读:
Java中的getPath(),getAbsolutePath()和getCanonicalPath()有什么区别?
但在所谓的"绝对"的地方替换"完全合格".
为了清楚起见,有些人还会使用术语"相对路径"来指代其中具有"相对参考"(双点..)的路径.例如,有些人可能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
符号链接或硬链接是否属于完全限定路径?
它是一个独立的概念.路径(无论是相对路径还是完全合格路径)都会导致文件系统中的某个位置.该位置的实体可以是许多内容之一:普通文件,目录,符号链接,硬链接,设备,命名管道等.符号链接或硬链接具有导致您在该位置实际查找的数据.
您可以根据指向某人家的方向来考虑路径和链接:
/".C:\,D:\,E:\等.10 Elm Str和20 Main Str.无论你去哪个地址,你最终都会在同一所房子里.附录
编辑
我问维护命名文件,路径和命名空间页面的人让我知道这一点.他回答说.
这也是完全合格的路径吗?C:\目录.. \目录\ file.txt的
我想知道该页面的维护者用什么术语来区分..\file.txt,C:\directory\..\directory\file.txt因为他称之为相对路径.我同意双点是相对参考,但我不会将整个路径标记为相对路径,因为它在其中间有双点.在他的术语中,完全合格和规范之间似乎没有区别.(其中,我认为,这是你问题的根源).
我来自Unix和Java背景,所以也许这会带来不同.据我所知:
relative/partial-qualified - 如果没有关联的上下文提供信息,则无法确定位置,例如当前工作目录,当前驱动器,驱动器的当前目录,shell PATH设置,Java CLASSPATH设置或引用URL.
绝对/完全限定 - 位置独立于关联的上下文,即无论当前工作目录,当前驱动器,驱动器的当前目录,shell PATH设置,Java CLASSPATH设置或引用,位置都是相同的URL.
规范 - 最简单的完全合格,即没有双点
所以
MSDN页面的那一部分不清楚C:\directory\..\directory\file.txt:如果C:\directory\..\directory\file.txt被认为是相对的,并且不能与Windows API一起使用,说它们需要一个完全合格的(但不一定是规范的?)路径,我建议该页面需要制作更清楚.
完全合格与相对
文件名是相对于当前目录的,如果它不开始与下列之一:
...*带反斜杠的磁盘指示符,例如"C:\"或"d:\". ...
由于C:\directory\..\directory\file.txt与一个blackslash磁盘代号启动时,这条道路是完全合格的,没有相对的.
如果路径包含"双点",则该路径也称为相对路径; 也就是说,路径的一个组成部分中有两个周期.此特殊说明符用于表示当前目录上方的目录,也称为"父目录".此格式的示例如下:
- "..\tmp.txt"指定位于当前目录的父级中的名为tmp.txt的文件.
- "....\tmp.txt"指定一个文件,它是当前目录上方的两个目录.
- "..\tempdir\tmp.txt"指定名为tmp.txt的文件,该文件位于名为tempdir的目录中,该目录是当前目录的对等目录.
我解释这个短语包含双点意味着领先的双点.示例仅显示前导双点.术语"当前目录"通常表示进程的当前工作目录或驱动器的当前目录,仅在讨论前导双点时才有意义.但是,我可以看到如何以另一种方式解释该部分.
无论如何,每个人的成长都不同,背景也是王道,所以我想每个人在阅读文档或与不同背景的工程师讨论"完全合格"与"相对"的含义时,需要注意细微差别.
| 归档时间: |
|
| 查看次数: |
19532 次 |
| 最近记录: |