Linux路徑中雙斜槓//的問題

如果有個一個需求:
告訴了你根目錄的絕對路徑是"/rootdir",這個根目錄下的一個子文件名叫"subfile"
那麼要求你寫一個函數返回這個子文件的絕對路徑。
很簡單這樣寫:

String buildAbsolutePath(String rootPath,String subName){
	return String.format("%s/%s",rootPath,subName);
}

對嗎?
第一遍看,對啊沒毛病!第二遍看,如果rootPath="/“呢?那不就返回”//subName"了嗎,這樣還對嗎?
不管你有沒有愣住,反正我是愣住了

最終結果:上面的寫法是沒有錯誤的,就算rootPath="/",也是正確的
不信?
你在電腦上試試 :

cd //bin

沒毛病,能運行的。那這樣呢:

cd ////////////bin

沒毛病,還是能運行。
那這是爲什麼?
因爲這個是等價的:

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