linux获取文件夹路径怎么写( 二 )


例如命令提示符的当前文件夹是C:\Windows,如果执行start System32\calc.exe命令,程序就会将两个路径合并得到C:\Windows\System32\calc.exe 。由于这样的特性,当前文件夹又称为工作文件夹,因为进程使用相对路径时都是针对该文件夹的 。
除了上面所说的纯粹的相对路径,还有两种特殊的相对路径,为了不至于混淆,不再将它们称为相对路径 。以\开头的路径上面说过相对路径不能以\开头,一旦如此,它就表示相对于当前文件夹根目录的路径 。
例如进程的当前文件夹是C:\Windows,那么\System32\calc.exe就表示C:\System32\calc.exe 。不论当前文件夹的路径有多深,只取根目录进行合并 。
可以在命令提示符中进行验证:首先将C:\Windows设置为当前文件夹,然后执行start \System32\calc.exe命令,将会提示错误,所找不到文件 。再执行start \Windows\System32\calc.exe命令,这时计算器程序成功启动了,证明了上面的说法 。
以盘符和冒号开头的路径这种路径就像是拼写错误的完整路径,它的格式如下:C:System32\calc.exe 盘符加冒号是一种特殊的表示法,表示的是进程在“该分区上的当前文件夹” 。这里又蹦出来了一个当前文件夹,这与上文的当前文件夹是不同的 。
简单来说,对于每一个分区,进程都会保存在这个分区上最后使用的当前文件夹 。可能解析的不够好,那么可以使用命令提示符来操作一遍以加深理解 。
运行cmd,执行cd /d C:\Windows\System32命令进入该文件夹,然后切换到其它的分区,再执行C:calc.exe命令,可以看到计算器程序启动了 。我们在执行cd命令进入C:\Windows\System32文件夹后,进程便以此为当前文件夹,当切换到其余的分区时,进程先将这个文件夹的路径保存起来,再进行切换 。
使用盘符和冒号的形式读取指定分区上的当前文件夹 。路径中的限制除了路径格式上的限制,还有很多字符上的限制,下面一一来看看各种路径有什么限制 。
除了以\\?\开头的路径之外,其它路径的长度都不能超过260个字符(包括结尾的\0字符),而\\?\开头的路径长度可以达到约32000个字符(系统在处理\\?\前缀的时候可能将它扩展成更长的字符串) 。网络上流传的一则技巧:文件路径太长而不能被删除,可以在执行del命令时在路径前加上\\?\前缀 。
文件或文件夹名称的最后一个字符不能为空格或句点 。但在路径中,最后一个字符可以为句点,因为路径中的句点表示的是当期文件夹(这与上文的当前文件夹完全不同),两个句点表示的是上一级文件夹 。
以\\?\开头的路径中不能使用句点表示当前文件夹或上一级文件夹,在资源管理器的地址栏中虽然可以这么做,那是因为资源管理器对其作了处理 。文件或文件夹名称不能包含的字符 :< > : " / \ | ? *在路径中可以使用 : \ ?,冒号是与盘符一起使 。

linux获取文件夹路径怎么写

文章插图