码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-08-25 14:48:14      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   使用   strong   文件   问题   div   

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

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

标签:style   blog   color   os   使用   strong   文件   问题   div   

原文地址:http://www.cnblogs.com/binyue/p/3927105.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!