关于文件路径的正反斜杠("/ \")和双斜杠("\\")问题
2014-08-25 13:33
162 查看
1.C文件路径为什么要用双斜杠?
因为" \ "在 C/C++/C# 中是转义前导字符,例如" \n "代表换行。
如果路径中刚好有类似转义字符开头的,那么就会引起问题,所以路径中的 \ 必须用 \\ 的形式。
2.Windows的路径中表示文件层级为什么会用反斜杠「\」,而UNIX系统都用斜杠「/」?
Windows 用反斜杠(“\”)的历史来自 DOS,而 DOS 的另一个传统是用斜杠(“/”)表示命令行参数,比如:
既然 DOS 这边斜杠被占用了,只好找一个最接近的。那就是它了。而在 UNIX 环境中,我们用减号(“-”)和双减号(“--”)表示命令行参数。
用斜杠表示命令行参数是兼容性原因。这个问题最初起源自 IBM。IBM 在最初加入 DOS 开发时贡献了大批工具,它们都是用斜杠处理命令行参数的。而这个传统源自于 DEC/IBM,比如当年的 VMS 就是用斜杠处理命令行参数,它的目录分隔符是美元符(“$”)。顺便说一句,这个传统也被部分地继承进了 DOS 和 Windows 体系,日文版的 Windows 就把反斜杠在屏幕上显示为“¥”,虽然实际上还是反斜杠。
如今的 Windows 内核在处理路径时确实可以同时支持斜杠和反斜杠。很多时候我们看到用斜杠时出错,是因为应用程序层面的原因。比如 cmd.exe 就不支持用斜杠表示路径,而PowerShell.exe 支持,也正因为这个原因,PowerShell 开始转而使用减号作为命令行参数的起始符。
这里有一个巧记法:注意window这个单词的第一笔,也就是字母w的第一笔,是什么?没错,就是反斜杠,这样每次在想windows文件路径中用/还是\的时候,首先要想到windows的第一笔是什么,答案自然就出来了。作为windows的对立面,linux或unix文件路径中用的自然就是/ 了。
转自 阮一峰的网络日志
因为" \ "在 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文件路径中用的自然就是/ 了。
转自 阮一峰的网络日志
相关文章推荐
- 关于文件路径的反斜杠正斜杠和双斜杠问题
- File路径相关_关于文件路径的反斜杠正斜杠和双斜杠问题
- 关于文件路径的反斜杠正斜杠和双斜杠问题
- 关于Java读取文件操作时路径中的斜杠问题
- 关于文件路径的反斜杠正斜杠和双斜杠问题
- 关于File.separator 文件路径:windows与linux下路径问题 ("\"与"/")
- 关于Java读取文件操作时路径中的斜杠问题
- 关于Java读取文件操作时路径中的斜杠问题
- 关于Python读取文件的路径中斜杠问题
- 关于oracle数据库中读取文件路径的问题整理
- 关于Java文件路径问题
- 关于windows mobile中文件路径的问题
- SiteMesh:关于decorators.xml配置文件中路径设置的问题
- IE8上传文件时javascript取文件的本地路径的问题("C:\fakepath\")的解决方案
- 关于Java文件路径问题
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题(三)
- Linux下gcc编译中关于头文件与库文件搜索路径相关问题 1
- 关于"未能映射路径"问题
- 关于Java文件路径问题(转)
- 关于"显示所有文件和文件夹"不能修改的问题