關於文件路徑的反斜槓正斜槓和雙斜槓問題

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章