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


標簽: c 文件路徑 絕對路徑 相對路徑 斜杠 it 分類: C 和OpenCV

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

來源: 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM