Windows 系統中目錄 (Directory) 與文件夾 (Folder) 的區別


在 Windows 系統中,我們經常會見到「目錄」和「文件夾」兩個名詞,但很多人會這兩個概念混用,甚至搞不清楚它們的區別,包括寫這篇博文的我,之前也是一樣。同樣表示「文件夾」的概念,為什么會有兩個說法?事實上,這兩個詞不僅僅是在中文中,在英文原文中,也是有兩個不同的詞匯,Directory 和 Folder。通常,Directory 被翻譯成「目錄」,而 Folder 被翻譯成「文件夾」。但實際的情況是,很多情況下,這兩個的翻譯都比較混亂,Directory 也經常被翻譯為「文件夾」。那么微軟使用 Directory 和 Folder 這兩個名詞到底什么不同的意義和差異呢?這個問題我多年也沒搞清楚,直到最近又在網上搜索資料,並自己進行一些測試后,才發現他們的細微差別。

首先,作為一個 Windows 開發人員,注冊表、文件關聯等都應該是了解的。那么大家應該都知道,在 Windows 的注冊表編輯器中的 HKEY_CLASSES_ROOT 節點下面,有 Directory 和 Folder 兩個子鍵,類似其他的 ProgId 子鍵,支持在其 shell 子鍵添加自定義的動作和命令。有一天我突發奇想,如果我分別在這兩個位置添加一個動作項,系統該如何顯示它們?於是我分別在不同的位置單獨添加注冊表項,然后觀察右鍵菜單,發現了其中的秘密:

僅在 HKEY_CLASSES_ROOT\Directory\shell 下面隨便添加一個節點,如 action,我分別在「計算機」、「回收站」、「計算機」中的任意驅動器、普通文件夾上點擊右鍵,只有普通的文件夾右鍵菜單中出現了 action 這一菜單項。

僅在 HKEY_CLASSES_ROOT\Folder\shell 下面隨便添加一個節點,如 action,我分別在「計算機」、「回收站」、「計算機」中的任意驅動器、普通文件夾上點擊右鍵,所有這些項目的右鍵菜單中均出現了 action 這一菜單項。

僅在 HKEY_CLASSES_ROOT\Drive\shell 下面隨便添加一個節點,如 action,我分別在「計算機」、「回收站」、「計算機」中的任意驅動器、普通文件夾上點擊右鍵,只有驅動器盤符右鍵菜單中出現了 action 這一菜單項。

如此看來,Folder 的范圍其實是很大的,它包括了系統中所有可以雙擊打開並查看其內容的「文件夾」項目,包括「計算機」、「回收站」、「控制面板」等這些虛擬文件夾,以及「計算機」中的所有磁盤驅動器,以及其中的任何文件夾 (Directory)。

而 Directory 的概念則小的很多,它必須是存在於物理磁盤上的一個「文件夾」項目,而「計算機」中的所有磁盤驅動器,如「本地磁盤 (C:)」則不認為是 Directory。

總結:如果是開發外殼擴展 dll,最好根據需要寫入到正確的子鍵下面,不要在 Directory 和 Folder 等子鍵下亂寫一通。雖然有的外殼擴展不支持虛擬文件夾,寫在 Directory 下系統也並不會加載,但還是希望各位開發人員能夠正確遵守規范。


免責聲明!

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



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