2014-11-06 32 views
0

任何人都可以向我解釋爲什麼這也是如此:「」節點路徑規範化尾隨句..和

規範化字符串路徑,以照顧「..」和部分。

當找到多個斜槓時,它們被替換爲單個斜槓; 當路徑包含尾部斜線時,它將被保留。在Windows上使用 反斜槓。

Example: 
path.normalize('/foo/bar//baz/asdf/quux/..') 
// returns '/foo/bar/baz/asdf' 

當我希望它返回

'/foo/bar/baz/asdf/quux' 

這是從節點文檔 http://nodejs.org/api/path.html#path_path_normalize_p

編輯

運行一些測試後,我知道「爲什麼「這正在發生,但不要聯合國理解它背後的邏輯。 下面是他們的輸入和輸出的三個例子。

/foo/bar//baz/asdf/quux/..  /foo/bar//baz/asdf 
/foo/bar//baz/asdf/quux/.  /foo/bar//baz/asdf/quux 
/foo/bar//baz/asdf/quux/  /foo/bar//baz/asdf/quux/ 

所以對於原來我可以看到,雙節期間「..」除去最後一次文件夾和一個句號「」刪除尾部的斜線。我明白,當在父文件夾中包含文件時,您會在../前綴一個路徑,我假設您實際上可以將它放在路徑中的任何位置,儘管目前似乎沒有什麼意義可以將它放在中間路徑中。

回答

1

雙冒號(..)表示父目錄與Linux中的標準一樣。因此,/foo/bar//baz/asdf/quux/..基本上選擇/foo/bar//baz/asdf/quux的父目錄