C#代碼中使用圖片、視頻、.doc、.xls等文件時都要先獲得文件路徑,但是有的路徑用斜杠/作為分隔符,有的路徑用反斜杠\作為分隔符,搞得我有點蒙圈,查閱了一些資料后終於弄清楚使用斜杠/和反斜杠\的區別是什么。
Unix使用斜杠/作為路徑分隔符,而Web應用最新使用在Unix系統上面,所以目前所有的網絡地址都采用斜杠/作為分隔符。
Windows由於已經使用斜杠/作為DOS命令提示符的參數標志了,為了不混淆所以采用反斜杠\作為路徑分隔符。所以目前Windows系統上的文件瀏覽器都是用反斜杠\作為路徑分隔符。隨着發展,DOS系統已經被淘汰了,命令提示符也用得很少,斜杠和反斜杠在大多數情況下可以互換。
知道這個背景后,可以總結一下結論:
- 瀏覽器地址欄中的網址使用 斜杠/ 作為路徑分隔符
- Windows文件瀏覽器使用 反斜杠\作為路徑分隔符
- 出現在html url()屬性中的路徑,指定的是網絡路徑,所以必須用斜杠/
//如果url后面用反斜杠\,則不會顯示任何背景 <div style="background-image:url(/Image/Control/title.png);background-repeat:repeat-x;padding:10px 10px"></div>
- 出現在普通字符串中的路徑,如果表示Windows文件路徑,則使用斜杠/和反斜杠\是一樣的;如果代表的是網絡文件路徑,則必須使用斜杠/
<!--本地路徑/和\是等效的--> <img src=".\Image\20161025\guo.jpg" /> <img src="./Image/20161025/guo.jpg" /> <img src=".\Image/20161025/guo.jpg" /> <img src="./Image\20161025\guo.jpg" /> <!--網絡文件路徑一定要使用反斜杠\--> <img src="http://img6.bdstatic.com/img/image/smallpic/chongwu10120.jpg"
斜杠/和反斜杠\的區別基本上就是這些了,下面說一下相對路徑和絕對路徑。
./Images/這樣寫表示,當前目錄中的Images文件夾
../Images/這樣寫表示,當前目錄的上一層目錄中的Images文件夾
/Images/這樣寫表示,項目根目錄(可以指磁盤跟目錄,也可以指項目根目錄,據實際情況而定)