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

举报
kobesdu 发表于 2022/02/10 10:24:50 2022/02/10
【摘要】 1 C文件路径为什么要用双斜杠因为 \ 在 C/C++/C# 中是转义前导字符,例如 \n 代表换行。如果路径中刚好有类似转义字符开头的,那么就会引起问题,所以路径中的 \ 必须用 \ 的形式。2 Windows的路径中表示文件层级为什么会用反斜杠「\」,而UNIX系统都用斜杠「/」?Windows 用反斜杠(“\”)的历史来自 DOS,而 DOS 的另一个传统是用斜杠(“/”)表示命令行参...

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

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

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

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

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

cd %SystemDrive%

dir /s /b shell32.dll

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

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

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

3 区分和记忆

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

复制代码

4 另外一些其他知识

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

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

  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只显示文件名,至于文件大小及建立的日期和时间则都省略。加上参数后,每行可以显示五个文件名


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。