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只顯示文件名,至於文件大小及建立的日期和時間則都省略。加上參數後,每行可以顯示五個文件名。