存储库路径的正确书写格式是
发布网友
发布时间:2022-12-23 19:46
我来回答
共1个回答
热心网友
时间:2024-12-14 16:53
Windows 系统中的文件路径格式
1.1. 传统 DOS 路径
标准的 DOS 路径可由以下三部分组成:
1.卷号或驱动器号,后跟卷分隔符 (😃。
2.目录名称。
3.可选的文件名。
如果以上三项都存在,则为绝对路径。
示例如下:
路径描述
C:\Documents\Newsletters\Summer2018.pdfC: 驱动器的根目录中文件的绝对路径。
\Program Files\Custom Utilities\Finder.exe当前驱动器根路径上的绝对路径。
2018\January.xlsx指向当前目录的子目录中的文件的相对路径。
…\Publications\TravelBrochure.pdf指向从当前目录开始的目录中的文件的相对路径。
C:\Projects\apilibrary\apilibrary.slnC: 驱动器的根目录中的文件的绝对路径。
C:Projects\apilibrary\apilibrary.slnC: 驱动器的当前目录中的相对路径。
相对目录段(. 和 …):前者是当前目录,后者是父目录
1.2. UNC 路径
通用命名约定(Universal Naming Convention,UNC)路径,用于访问网络资源(主要指局域网),具有以下组成部分:
1.以 \\ 开头的服务器名或主机名:计算机名或 IP/FQDN 地址(IPv4 和 IPv6)。
2.共享名,用 \ 将其与主机名分隔开。服务器名和共享名共同组成了卷。
3.目录名。
4.可选的文件名。
示例如下:
路径描述
\system07\C$\system07 上 C: 驱动器的根目录。
\Server2\Share\Test\Foo.txt\Server2\Share 卷的测试目录中的 Foo.txt 文件。
UNC 路径可包括相对目录段(. 和 …)。 只能通过将 UNC 路径映射至驱动器号来使用相对路径。
访问网上邻居所采用的命令行访问法,实际上应该称作 UNC 路径访问法。
1.3. DOS 设备路径
DOS 设备路径由以下部分组成:
1.设备路径说明符(\\.\ 或 \\?\),将路径标识为 DOS 设备路径。
2.“实际”设备对象的符号链接(如果是驱动器名称则为 C:,如果是卷 GUID 则为卷{b75e2c83-0000-0000-0000-602f00000000})。
示例如下:
路径描述
\.\C:\Test\Foo.txt通过驱动器号识别驱动器
\?\C:\Test\Foo.txt通过驱动器号识别驱动器
\.\Volume{b75e2c83-0000-0000-0000-602f00000000}\Test\Foo.txt用卷 GUID 来识别卷
\?\Volume{b75e2c83-0000-0000-0000-602f00000000}\Test\Foo.txt用卷 GUID 来识别卷
DOS 设备路径按定义完全限定,不能以相对目录段开头(. 或 …), 也不会包含当前目录。
2 路径规范化
几乎所有传递至 Windows API 的路径都经过规范化。 规范化过程中,Windows 执行了以下步骤:
识别路径。
将当前目录应用于部分限定(相对)路径。
规范化组件和目录分隔符。
评估相对目录组件(当前目录是 .,父目录是 …)。
剪裁特定字符。
3 路径标识总结
路径的类型决定是否以某种方式应用当前目录,还决定该路径的“根”是什么。路径归为以下几个类别之一:
设备路径:开头是两个分隔符和一个问号或句点(\\? 或 \\.)。
UNC 路径:开头是两个分隔符,没有问号或句点。
完全限定的 DOS 路径:开头是驱动器号、卷分隔符和组件分隔符 (C:)。
指定旧版 DOS 设备(CON、COM1、LPT1)。
相对于当前驱动器的根路径:开头是单个组件分隔符 ()。
相对于指定驱动器的当前目录:开头是驱动器号和卷分隔符,而没有组件分隔符 (C:)。
相对于当前目录:开头是上述情况以外的任何内容 (temp\testfile.txt)。
路径开头的特征说明或示例
DOS 设备路径两个分隔符和一个问号或句点\\? 或 \\.
UNC 路径两个分隔符,没有问号或句点\\ 或 \\
完全限定的 DOS 路径驱动器号、卷分隔符和组件分隔符C:\
旧版 DOS 设备CON、COM1、LPT1在其前加 \\.\ 转为 DOS 设备路径,如 CON.TXT 转为 \\.\CON,而 COM1.TXT\file1.txt 转为 \\.\COM1
相对于当前驱动器的根路径单个组件分隔符 (\)\
相对于指定驱动器的当前目录驱动器号和卷分隔符,而没有组件分隔符C:
相对于当前目录上述情况以外的任何内容temp\testfile.txt
4 应用当前目录
不会向 UNC 和设备路径应用当前目录。
带有分隔符的 C:\ 完整驱动器也不会应用当前目录。
如果路径非完全限定,Windows 会向其应用当前目录。
如果路径的开头是单个组件分隔符,则会应用当前目录中的驱动器。 例如,如果文件路径是 \utilities 且当前目录为 C:\temp\,规范化后路径则为 C:\utilities。
如果路径不是以分隔符开头的,则应用当前驱动器和当前目录。 例如,==如果路径是 filecompare 且当前目录是 C:\utilities\,则结果为 C:\utilities\filecompare==。
如果路径开头是驱动器号和卷分隔符,而没有组件分隔符,则应用从命令行界面为指定驱动器设置的最新当前目录。 如未设置最新当前目录,则只应用驱动器。 例如,如果文件路径为 D:sources,当前目录为 C:\Documents\,且 D: 盘上的最新当前目录为 D:\sources\,则结果为 D:\sources\sources。 这些“驱动器相对”路径是导致程序和脚本逻辑错误的常见原因。 假设以字母和冒号开头的路径不是相对路径,显然是不正确的。
相对路径在多线程应用程序(也就是大多数应用程序)中很危险,因为当前目录是分进程的设置。 任何线程都能在任何时候更改当前目录。
5 规范化分隔符
将所有正斜杠 (/) 转换为标准的 Windows 分隔符,也就是反斜杠 ()。
如果存在斜杠,前两个斜杠后面的一系列斜杠都将折叠为一个斜杠。
6 评估相对组件
处理路径时,会评估所有由一或两个句点(. 或 …)组成的组件或分段:
如果是单句点,则删除当前分段,因为它表示当前目录。
如果是双句点,则删除当前分段和父级分段,因为双句点表示父级目录。
仅当父级目录未越过路径的根时,才删除父级目录。 路径的根取决于路径的类型。
对于 DOS 路径,根是驱动器 (C:);
对于 UNC,根是服务器/共享 (\Server\Share);
对于设备路径,则为设备路径前缀(\?\ 或 \.\)。
7 其他
Windows 文件系统有一个特性,就是路径和目录名称不区分大小写。所以,比较或搜索目录名和文件名时不区分大小写。