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

标签: c 文件路径 绝对路径 相对路径 斜杠 it 分类: C 和OpenCV

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

来源:

来自为知笔记(Wiz)

时间: 2024-10-09 22:21:28

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

彻底搞懂反斜杠“\”和正斜杠"/"的区别

正斜杠,符号是"/";反斜杠,符号是"\". 在知乎中看到一个答案如下: 知乎用户:"在绝大多数地方,用的都是/(slash),包括Mac/Linux,也包括URL.你唯一需要记住的是,Microsoft这个怪鸡在自己的操作系统里面偏要用\(backslash),使得自己与众不同. Unix使用正斜杠/作为路径分割符,而Web应用最先是使用在Unix系统上面,所以目前所有的网络地址都采用正斜杠/作为分隔符. Windows由于使用正斜杠/作为DOS命令提示

在数据库中,文件路径应该存储斜杠/,还是反斜杠\呢?

背景 在做Web项目中,需要上传头像,数据库表中自然存储其相对路径,然后就想应该存储斜杠还是反斜杠呢?(当然好像也不需要特别关心,因为在程序中把路径读取到直接上传保存就知道是斜杠还是反斜杠了,这里仅简单地想一下) 认识 1.首先网址是斜杠,如https://www.baidu.com/ 2.Linux文件路径是斜杠 3.Windows文件浏览器用的是反斜杠,而斜杠是用在Dos命令中.如图,当我在命令行中输入cd D:/Progra,同时按下Tab键的时候,发现没有任何反应:而当我输入cd D:\

正斜杠(/)与反斜杠(\)区别

正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS路径: E:\开发资料\ASP.NET高级开发   ...这是反斜杠的作用后面跟着的是文件名 csc /t:library /r:System.Web.dll /out:d:\CustomHandler.dll d:\CustomerHandler.cs  ...这就是正斜杠后面是一个名令的参数dir 是命令. Windows系统: 反斜杠\,在win

计算机中的正斜杠(/)与反斜杠(\)的区别

正斜杠,符号是"/";反斜杠,符号是"\". 一直很不解正斜杠与反斜杠到底有何区别?经过一段时间的理解,得出 DOS路径: E:\开发资料\ASP.NET高级开发   ...这是反斜杠的作用后面跟着的是文件名 csc /t:library /r:System.Web.dll /out:d:\CustomHandler.dll d:\CustomerHandler.cs  ...这就是正斜杠后面是一个名令的参数dir 是命令. Windows系统: 反斜杠\,在win

【转】python中的正斜杠、反斜杠

原文地址:http://www.cnblogs.com/followyourheart1990/p/4270566.html 首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下例子: path = r"C:\Windows\temp\readme.txt" p

thinkphp5.0查询到的数据表中的路径是反斜杠导致无法正常显示图片怎么办?

添加到数据表中图片的路径有时会是反斜杠,这就导致了在url后面写路径的时候会识别不出来(不过src后面写路径就可以识别),所以就需要把路径中的反斜杠替换成正斜杠,代码如下: 1 $datu = Db::query('select images from think_ad where ad_position_id = 22'); 2 $str = ""; 3 foreach($datu as $v) 4 { 5 $str .= implode($v); 6 $str .= "|

MySQL数据库还原:路径必须用正斜杠?

也是术业不精,其实之前也用命令行还原过几次MySQL数据库,但总记不清语法.这不,今天想把另一台电脑上备份的数据库还原过来,结果不停报错,如下图所示: 后来才发现,因为偷懒直接复制的路径名里,用的全是反斜杠,所以总报错.改成正斜杠就没事了: mysql -u derek -p dic <  D:/360YunPan/Derek/MySQL/20161023_pers_nam_deleted.sql 之前有几次,备份的时候忘记写上数据库名称,结果就没提示输入密码,备份出来的.sql文件也只有1KB

Python中的正斜杠与反斜杠

首先,"/"左倾斜是正斜杠,"\"右倾斜是反斜杠,可以记为:除号是正斜杠一般来说对于目录分隔符,Unix和Web用正斜杠/,Windows用反斜杠,但是现在Windows (一)目录中的斜杠们 python读文件需要输入的目录参数,列出以下例子: path = r"C:\Windows\temp\readme.txt" path1 = r"c:\windows\temp\readme.txt" path2 = "c:

正斜杠和反斜杠-windows、web、c语言大讨论

首先,在c语言中,正斜杠/ slash 表示除法反斜杠\ backslash ,\用于转义字符,\n.\0. 其次,UNIX 操作系统设计了这种路径分隔法,它使用正斜杠:/.由于网络是首先应用在 UNIX 计算机之间的,至今为止,一半以上的网络服务器仍是使用 UNIX 操作系统的,所以网址也沿用了正斜杠作路径分隔符. 而微软在开发 DOS 2.0 的时候,从 UNIX 中借鉴了这种目录结构,但由于 DOS 中,斜杠已经用来作为命令行参数的标志了(UNIX 中用的是“ - ”符),所以只得使用反斜