因此,绝对路径是一种到达特定文件或位置的方法,该文件或位置描述了到达该文件或路径的完整路径,完整路径,并且它取决于操作系统(例如Windows和Linux的绝对路径是不同的)。路由到从当前位置描述的文件或位置。(两个点)指示目录树中的上级。几年来我一直很清楚。
搜索时,我什至还看到有规范化的文件!据我所知,规范意味着类似“根据规则”之类的东西。
有人能启发我有关规范事物的理论吗?
因此,绝对路径是一种到达特定文件或位置的方法,该文件或位置描述了到达该文件或路径的完整路径,完整路径,并且它取决于操作系统(例如Windows和Linux的绝对路径是不同的)。路由到从当前位置描述的文件或位置。(两个点)指示目录树中的上级。几年来我一直很清楚。
搜索时,我什至还看到有规范化的文件!据我所知,规范意味着类似“根据规则”之类的东西。
有人能启发我有关规范事物的理论吗?
Answers:
使任何事情“规范”的全部目的是使您可以比较两件事。例如,../../here/bar/x
和./test/../../bar/x
可能都指向相同的位置,但是您不能在两个路径上进行文本比较。但是,如果将它们转换为它们的规范表示,它们都将变为../bar/x
,并且我们看到它们实际上是指同一件事。
简而言之,通常情况下,您有多种方式引用一个事物,并且在这种情况下,您可能可以定义一个唯一的规范表示,并允许您处理这些事物的集合。
(如果您正在寻找更多示例,则所有数学都充满了针对各种对象的“规范”构造,并且出于相同的目的。也许这篇Wikipedia文章可以提供一些其他指导。)
定义规范路径的一种好方法是:(the shortest absolute path
简短,在字符串长度的意义上)。
这是绝对路径和规范路径之间差异的示例:
绝对路径: C:\abc\..\abc\file.txt
规范路径:C:\abc\file.txt
规范路径(或其与绝对路径的区别)取决于系统。
通常,如果(完整)路径包含别名,快捷方式或符号链接,则规范路径会将所有这些解析为它们所引用的实际目录。
示例:如果/bin/a
是符号链接,则可以在您请求绝对路径的任何位置找到它,例如从java.io.File#getAbsolutePath获取,而实际文件(即链接的实际目标)即usr/local/bin/a
作为规范路径返回,例如来自java.io.File#getCanonicalPath
当您传递目录名而不是文件名时,规范路径的大多数问题都会发生。对于文件,如果我们提供的绝对路径也是规范路径。但是对于dir来说,它意味着省略最后一个“ /”。例如,“ / var / tmp / foo”是规范路径,而“ / var / tmp / foo /”不是。