為什麼同一目錄下面不能存在兩個文件名相同的文件?

文件類型(後綴名)不同是可以的,但是為什麼兩個文件名完全相同(包括後綴名)的文件不能存在於同一個目錄之下?


目前絕大多數文件系統是通過文件名來定位文件在磁碟上的具體位置

當你要對任何一個文件(包括文件夾)訪問時,在查找文件的過程中,文件系統需要通過文件的名字去搜索,搜索的過程可能是查表或者搜索樹型結構的數據。當找到第一個匹配的名字時,搜索停止並返回

文件系統不會找到位於樹的下一個重名的節點或者重名表項,甚至有些樹型結構的文件系統里一個樹的節點上只能保存唯一的名字,如果有重複的名字存在,文件系統會丟棄後面的那個,你將不能訪問重名文件中的某一個文件(具體那個要看文件系統的類型)

如果允許存在重名文件,你必須提供另外一套唯一標識機制保證文件系統能找到另一個重名文件,而由於文件名是唯一標識,所以重名文件不允許。

當然,不是所有的文件系統都是這樣,比如在允許使用Open file by ID的文件系統里,ID是文件的唯一標識,這種情況下,文件名可以重複,但ID不能重複,你可以通過ID來訪問重名文件。


為什麼同一個城市裡的電話號碼沒有兩個相同的?


這個問題挺開腦洞的。

人也沒有完全一樣的呀,即使是雙胞胎她們也有區別的,不然你怎麼知道應該睡哪一個?萬一睡錯了就麻煩了。

不允許同名文件應該就是保證不會娶錯媳婦吧。


父文件夾下也不能存在兩個相同文件名的子文件夾啊? 大小寫不同可以! (這東西是否取決於文件系統我就不清楚了, 畢竟我也不懂, 強行裝逼)


首先上圖打臉:

然後大家應該都記得,Pauli不相容原理是每個軌道至多可以有2個電子,但是它們的自旋必須不同。

喏,這兩個desktop.ini的自旋就是不同的,而你也不可以建立第三個desktop.ini。win7的許多自帶的文檔文件夾,往往會遇到很多這種雙desktop.ini的情況。


推薦閱讀:

如何打開mobi為後綴的文件?
安裝虛擬機時打開電源出現「無法打開內核設備「.Globalvmx86」: 系統找不到指定的文件。該怎麼解決?

TAG:操作系統 | 文件系統 | 文件 | 後綴 | 目錄 |