关于文件路径的反斜杠正斜杠和双斜杠问题

时间:2021-01-28 14:47:52


1

C文件路径为什么要用双斜杠

因为 \ 在 C/C++/C# 中是转义前导字符,例如 \n 代表换行。

如果路径中刚好有类似转义字符开头的,那么就会引起问题,所以路径中的 \ 必须用 \\ 的形式。

 

2 Windows的路径中表示文件层级为什么会用反斜杠「\」,而UNIX系统都用斜杠「/」?

Windows 用反斜杠(“\”)的历史来自 DOS,而 DOS 的另一个传统是用斜杠(“/”)表示命令行参数,比如:

cd %SystemDrive%

dir /s /b shell32.dll

既然 DOS 这边斜杠被占用了,只好找一个最接近的。那就是它了。而在 UNIX 环境中,我们用减号(“-”)和双减号(“--”)表示命令行参数。

用斜杠表示命令行参数是兼容性原因。这个问题最初起源自 IBM。IBM 在最初加入 DOS 开发时贡献了大批工具,它们都是用斜杠处理命令行参数的。而这个传统源自于 DEC/IBM,比如当年的 VMS 就是用斜杠处理命令行参数,它的目录分隔符是美元符(“$”)。顺便说一句,这个传统也被部分地继承进了 DOS 和 Windows 体系,日文版的 Windows 就把反斜杠在屏幕上显示为“¥”,虽然实际上还是反斜杠。

 

如今的 Windows 内核在处理路径时确实可以同时支持斜杠和反斜杠。很多时候我们看到用斜杠时出错,是因为应用程序层面的原因。比如 cmd.exe 就不支持用斜杠表示路径,而PowerShell.exe 支持,也正因为这个原因,PowerShell 开始转而使用减号作为命令行参数的起始符。

记忆

      这里有一个巧记法:注意window这个单词的第一笔,也就是字母w的第一笔,是什么?没错,就是反斜杠,这样每次在想windows文件路径中用/还是\的时候,首先要想到windows的第一笔是什么,答案自然就出来了。作为windows的对立面,linux或unix文件路径中用的自然就是/ 了。

 另外一些其他知识

  相对路径:相对路径就是指由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。使用相对路径可以为我们带来非常多的便利。下面举实例详解:

  例如在本地硬盘有如下两文件,它们要互做超链接

  G:\site\index.htm

  G:\site\web\article\01.htm

   index.htm要想链接到01.htm这个文件,正确的链接应该是:链接文字,这是标准的相对路径。

  反过来,01.htm要想链接到index.htm这个文件,在01.htm文件里面应该写上这句:返回首页。这里的../表示向上一级。

  至此,你已经了解相对路径的概念了,就是这样简单明了。如果你还是没有看明白,以前学过DOS吗?它的“CD文件夹名”和“CD..”命令用过吗?这是同理的。

  注意:相对路的文件夹符号是斜杠:/

  链接文字这样的链接,在href后面的第一个斜杠表示根目录,通常我们要特别慎用这种方式。

 

绝对路径

  在www中(广域网),以http开头的链接都是绝对路径。

  物理路径?

  物理路径指的是某一台计算机本地的路径,以盘符开头,例如C:\、D:\temp等等。ASP的数据库连接中,只能连接物理路径,而不能连接相对路径,所以需要用server.mappath对象把相对路径转化成物理路径。

  \是文件的路径,如c:\windows\system\……

  /是用在dos命令中加参数,DIR——显示磁盘目录命令

  1.功能:显示磁盘目录的内容。

  2.类型:内部命令

  3.格式:DIR [盘符][路径][/P][/W]

  使用说明:/P的使用;当欲查看的目录太多,无法在一屏显示完屏幕会一直往上卷,不容易看清,加上/P参数后,屏幕上会分面一次显示23行的文件信息,然后暂停,并提示;Press

  any key to continue

/W的使用:加上/W只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名。