关于文件路径的正反斜杠("/ \")和双斜杠("\\")问题

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文件路径中用的自然就是/ 了。

时间: 2024-10-09 22:22:03

关于文件路径的正反斜杠("/ \")和双斜杠("\\")问题的相关文章

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

标签: c 文件路径 绝对路径 相对路径 斜杠 it 分类: C 和OpenCV 1 C文件路径为什么要用双斜杠 因为 \ 在 C/C++/C# 中是转义前导字符,例如 \n 代表换行. 如果路径中刚好有类似转义字符开头的,那么就会引起问题,所以路径中的 \ 必须用 \\ 的形式. 2 Windows的路径中表示文件层级为什么会用反斜杠「\」,而UNIX系统都用斜杠「/」? Windows 用反斜杠("\")的历史来自 DOS,而 DOS 的另一个传统是用斜杠("/"

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

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

网络资源路径的双斜杠//和双反斜杠\\的区别

1 斜杠"/"是URL地址中用到的分隔符:对应地,双斜杠用在网络域名访问中,是协议和主机名或IP地址之间的分隔符,以双斜杠//开头的URL是依赖协议的URL表示形式,URL格式:协议://域名或ip/请求文件路径/文件名. 如百度的网址:https://www.baidu.com/.URL默认以斜杠"/"结尾,而没有给出文件名的情况下,URL引用路径中最后一个目录中的默认文件(通常对应于主页). 2 反斜杠"\"是Windows系统文件目录结构使

正反斜杠的区别

摘录原文:http://blog.csdn.net/zlwzlwzlw/article/details/7768313/ (1)浏览器地址栏网址使用 斜杆/ ; (2)windows文件浏览器上使用 反斜杠\ ; (3)出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用 斜杆/ ; <div style="background-image:url(/Image/Control/title.jpg); background-repeat:repeat-x; paddi

C语言文件路径中的”/“和“\“

在不同系统的情况系   windows下是\,linux和unix下是/  但在win中没有本质区别. 但是由于   \   也是转义字符的起始字符,  所以, 路径中的   \   通常需要使用   \\ 如果是   /   就不需要使用转义了 如C中文件操作, c:\\kkk\\dd.txt  双反斜杠! c:/kkk/dd.txt一样 “\”一般是表示本地目录的,比如你电脑里面的C:\windows\.. “/”主要表示远程电脑或者网络上的,比如你这个贴子的地址:http://zhidao

PathFindFileName函数,由文件路径获得文件名

PathFindFileName函数的作用是返回路径中的文件名. PTSTR PathFindFileName( __in PTSTR pPath ); pPath是指向文件路径字符串的指针,函数返回指向文件名的指针(如果找到的话),否则返回指向路径开头的指针. PathFindFileName既支持Windows下的反斜杆,也支持Unix下的斜杠,还支持斜杆和反斜杠的混合, 例如: 1 2 * Author: Chechen 3 * Date: 2014/7/24 4 */ 5 #includ

数据库写入文件路径

今天写一个功能发现写入数据库的文件路径全被转换了把"\"都没了,如:“C:UsersAdministratorDesktop est1.txt”,本来该路径应该为“C:\Users\Administrator\Desktop\test\1.txt”,发现是进行了斜杠的转义,但是添加断点监控写入的sql为“C:\\Users\\Administrator\\Desktop\\test\\1.txt”,应该没问题,通过手动将该sql拷贝到navicat中执行,写入数据库格式也是正确的.然后

截取上传的文件路径

function lastname(){ //获取欲上传的文件路径var filepath = document.getElementById("file1").value; //为了避免转义反斜杠出问题,这里将对其进行转换var re = /(\\+)/g; var filename=filepath.replace(re,"#");//对路径字符串进行剪切截取var one=filename.split("#");//获取数组中最后一个,即文

Windows文件路径转换为java中可识别的文件路径的转义方法,(另附转义多种格式)

ps:欢迎加qq好友:2318645572,交流学习 一:路径转化 Windows中的文件路径格式为 D:\eclipse\apache-tomcat-7.0.67\wtpwebapps\... Java中的文件路径格式为 D:/eclipse/apache-tomcat-7.0.67/wtpwebapps/... 如果直接用windows的路径,用流写入的时候会抛出异常 在java中使用前者则会报错,所以需要先将Windows中的文件路径转换为java中可识别的路径. 作如下处理: Strin