Cover 如果你是個電腦初學者,或者回想一下身邊的初學者使用電腦的情境:「『我的電腦』在哪裡?」「『桌面』怎麼不見了?」通常是他們灌完新作業系統最先冒出來的問題。當然,這些項目並不是網路冷笑話裡說的真實設備,而是Windows作業系統為了讓我們更容易操作使用,所設計出來的抽象名詞。

沒有路徑的資料夾

以「我的電腦」來說,它並不是儲存在硬碟裡的實體資料夾,但是它可以把電腦上安裝的各個硬碟、光碟機,以我們慣用的C、D、E等代號顯示出來,因此也可以稱為虛擬資料夾(virtual folders)。

而「桌面」資料夾的定義比較特別,當我們瀏覽Windows 7檔案總管目錄樹裡面最上層的「桌面」,會出現「媒體櫃」(library)、「電腦」、「資源回收筒」、「控制台」等等虛擬資料夾,這是因為「桌面」正是所有使用介面項目的「根」。或是說,「桌面」虛擬資料夾的存在,是方便我們在檔案總管當中展開其他實體或虛擬資料夾用的。但「桌面」還有另一個分身,是在使用者個人資料夾底下的「桌面」實體資料夾,平常我們存檔到電腦桌布上的檔案,就是被放進這裡。

▲ 新的媒體櫃取代了「我的文件」,成為Windows 7收集、整理個人資料檔案的預設位置。

Tips:系統的殼與核心

 作業系統當中的殼(shell)這個字不好翻譯,很多人會直接用原文表示。殼就是使用者和系統核心(kernel)溝通的介面,如果把兩個英文單字想像成一幅果殼包著果核的圖片,就不難理解為什麼這麼稱呼了。

像是DOS的命令列、Linux的各種指令介面、Windows的圖形介面都是殼的一種,而文章裡提到「桌面」是所有使用介面項目的根,是一種簡化的說法,指的就是殼裡頭「命名空間」(namespace)的根。至於namespace的定義,你可以當成一個特定範圍裡的名牌識別系統。

不用記實體位置

類似的實體或虛擬資料夾還有很多,微軟把它們稱做特殊資料夾(special folders),利用抽象的概念,而不是實體的儲存路徑來代表系統裡的各種資料夾,應用程式只需要呼叫這些特殊資料夾的代碼,不必知道實際的儲存位置也可以存取各種資料。

另一個常見的特殊資料夾就是「我的文件」、「我的圖片」等等,它可以讓我們在開始功能表、檔案總管、存檔對話框等各個地方快速搜尋、整理你的文件、圖片、影片等資料檔案。到了Windows 7之後,微軟創造了全新的「媒體櫃」來取代這些「我的XX」。

從Vista開始改變

好端端的,多了個媒體櫃有什麼特別呢?如果你順手到處翻一翻,會發現「我的文件」、「我的圖片」還是存在Windows 7的個人資料夾底下,當然啦,從Vista開始,「我的」兩個字就不見了,我們只是取個方便稱呼而已。也很剛好,和其他Windows 7的改良重點相同,從Windows Vista就已經開始變更特殊資料夾的結構,到Windows 7則是站在已改進的基礎繼續發揚光大。所以我們得從Vista相對於XP的改變開始講起。

▲ 點選檔案總管左邊的桌面,會出現一些連電腦桌布上也沒有的特殊資料夾。

我的文件捷徑三代同堂

Windows XP

▲ 在開始功能表右上方,有「我的文件」、「我的圖片」等各種資料檔案的儲存捷徑。

Windows Vista

▲ 拿掉了「我的」兩個字, 最右上方加入了以使用者帳號命名的個人資料夾。

Windows 7

▲ 雖然還是叫「文件」、「圖片」等,不過點進去會是新的「媒體櫃」資料夾。

特殊資料夾的演進

早期,Windows的特殊資料夾是藉由CSIDL(Constant Special Item iDentifier List values)這個值來辨識。這樣一來即使作業系統改版,比方「我的文件」改成了「文件」,儲存位置也換了,只要CSIDL相同,應用程式還是能順利找到它的位置。

從Windows Vista開始,則是改用「known folders」這個新的登錄檔(以下為了便於解說仍用特殊資料夾統稱),每個資料夾透過一個KNOWN FOLDERID的GUID來辨認。因為登錄檔這個資料庫可以儲存的資訊更多,便可以記錄特殊資料夾的目錄、顯示名稱、資料夾型態等各種屬性。而為了要向下相容,舊的CSIDL名稱、和舊的特殊資料夾命名也包含在裡面。

特殊資料夾有四種

隨著特殊資料夾的列表不斷增加,加上作業系統對安全性的要求越來越高,微軟也在Windows Vista當中歸類出四種特殊資料夾:

1. 虛擬資料夾(類型登錄值:virtual):

只會出現在系統的「殼」,並不會連結到任何的實體資料夾,像是控制台裡的項目,和印表機都是。因此它們不能被取得或改變資料夾的路徑。

2. 固定資料夾(類型登錄值:fixed):

當我們裝好作業系統就會存在的系統資料夾,像是Windows或Program Files,它們是系統專用的路徑,所以儲存位置永遠固定,不能修改。

3. 公用資料夾(類型登錄值:common):

所有使用者共用的實體資料夾,像是「公用文件」、「公用圖片」等等,可以自訂路徑。

4. 個人資料夾(類型登錄值:per-user):

系統裡的各個使用者帳戶專用的實體資料夾,除了「我的文件」這一類,還可以用來儲存應用程式的設定值、使用記錄等等,也可以自訂路徑。

特殊資料夾在哪裡?

Windows Vista和Windows 7的特殊資料夾會出現在登錄檔的「HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions」路徑下,不過看一連串的GUID難免頭昏眼花,套用別人寫好的小程式瀏覽就輕鬆得多了:

Known Folders Browser:

http://weblogs.asp.net/kennykerr/archive/2006/11/03/Known-Folders-Browser-1.0-_2800_for-Vista-and-Beyond_2900_.aspx(縮網址:http://tinyurl.com/ye6p88z

▲ 把登錄檔裡面的各個值整理成容易瀏覽的清單,也可以按右鍵變更可修改的資料夾路徑,不過並不能變更資料排序。

SpecialFoldersView:

http://www.nirsoft.net/utils/special_folders_view.html

▲ 針對舊的CSIDL系統所寫的小程式,雖然Vista和Windows 7也可以直接執行,不過並不能顯示詳細的登錄檔內容。

軟體支援好壞有別

知道這些,跟一般使用者又有何干呢?我們常常聽到「有些軟體寫得不好,沒辦法正確支援新的作業系統」,指的就是類似的道理。當一套軟體要存取特殊資料夾時,比方安裝程式捷徑讓所有人可以執行,它應該要透過微軟的API取得資料夾的登錄值,而不是直接把自己寫入Windows或Program Files目錄。

另外像是使用者的本機設定檔、漫遊設定檔(例如在家透過VPN登入公司網域)、軟體用來下載更新的資料,都會有各自對應的特殊資料夾登錄檔。

我的文件不夠用

當Windows Vista改變了特殊資料夾的架構,同時也會對公用資料夾、個人資料夾,這些常用來儲存大量資料檔案的位置建立索引,以便讓Vista內建的桌面搜尋功能執行速度更快。畢竟通常我們要找的檔案,都在這些個人和公用的設定檔底下。

然而現實的狀況是,你的「C槽」容量可能很小,搞不好是故意犧牲容量換取效能的SSD。所以就把佔用大量空間的文件、圖片移到其他磁碟機,甚至是外接硬碟或小NAS上面。另一種常見的狀況,是「我的圖片」、「我的音樂」這些類別不足以總括你精心收集的媒體資料庫。比方你想有個資料夾專門放BT抓下來的軟體,另一個資料夾是為了寫畢業論文臨時用來匯整資料用的⋯⋯。

▲ 當我們建立新的媒體櫃,Windows 7會馬上將它們列入建立索引的名單,不必手動一個一個加了。

多重資料夾也可以

這麼一來我們還得額外替散落在各個位置的資料夾設定索引,或者老是在回想昨天寫的報告到底存在C還是D磁碟。而Windows 7媒體櫃的改良重點,就是可以把多重資料夾都當成儲存位置,而且除了預設的項目,也可以建立自訂的媒體櫃。這樣一來比起傳統的「我的文件」,會更符合一般人的使用習慣。

既然媒體櫃是要用來取代「我的文件」,為什麼Windows 7還是保留了和Vista一樣的舊版個人資料夾? 這是因為媒體櫃的「真身」是個XML檔,而不是資料夾,這會讓舊的應用程式讀不到存檔的位置,所以一切還是為了「向下相容」的大局著想。想當然,每個媒體櫃的預設儲存位置,都是它們前身的特殊資料夾。

而媒體櫃的XML格式定義檔是放在「%appdata%\Microsoft\Windows\Libraries」路徑底下,檔名就是媒體櫃的名稱,副檔名則是「.library-ms」,例如Documents.library-ms就是文件媒體櫃(document library)。

Before

 

▲ Windows Vista的個人資料夾彙整了各種使用者的資料檔案,也可以從左側的導覽列快速找到。

After

▲ Windows 7還是保留了相同的個人資料夾,只是左側導覽列被媒體櫃取代,不再有「我的文件」。

使用 Facebook 留言

最狂嘴砲戰鬥哥 Amola Li
1人給推

3.  最狂嘴砲戰鬥哥 Amola Li (發表於 2010年11月25日 17:53)
這功能玩過一次就會想把XP扔掉了

底層的來源不一樣的時候,能統一成一個圖標當索引去找檔
除了像以前一樣去靠人腦記憶自己檔案的路徑
還多了一個彙整到媒體庫的方式去索引查找

有點像是「忠孝新生站」底下會加個括弧「台北科大」或「光華商場」的意思
E7a7967f7f7b292ecac1ffd02c12afb9?size=48&default=wavatar
2人給推

6.  dos3.3d (發表於 2010年11月25日 19:18)
※ 引述《艾默拉》的留言:
> 這功能玩過一次就會想把XP扔掉了

這功能我玩過好幾次的結果是把WIN7給扔掉留下XP
LIS
1人給推

7.  LIS (發表於 2010年11月25日 19:37)
我是覺得 XP 還是比較簡單。剛買的筆電是預裝 vista 的,用了沒多久,就灌回 xp 了。
8e06b81fe7262aa10f4d14d049ea63ee?size=48&default=wavatar
8.  Daddy (發表於 2010年11月25日 22:07)
※ 引述《dos3.3d》的留言:
> ※ 引述《艾默拉》的留言:
> > 這功能玩過一次就會想把XP扔掉了
>
> 這功能我玩過好幾次的結果是把WIN7給扔掉留下XP
>

恁爸聽你放P~ ╮(╯_╰)╭

這東西即使不用,也不會占資源更不會占空間
更重要的它也不會妨礙你!
很顯然你根本不知道媒體櫃是啥!

下次放P請記得先打草稿喔!先去把WIN7用過一次再來!╮(╯_╰)╭
 
5811b64ffd2fa7116580dafa02d9bb7b?size=48&default=wavatar
9.  ╮(╯_╰)╭ (發表於 2010年11月25日 22:16)
※ 引述《 l.i.s 》的留言:
> >我是覺得 XP 還是比較簡單。剛買的筆電是預裝 vista 的,
> >用了沒多久,就灌回 xp 了。

Win95更簡單,啟動更快速,去灌回Win95吧
對了,事實上Win 3.1更簡單,去灌回Win 3.1吧
又對了,事實上Win 1.0更簡單,去灌回Win 1.0吧

對了對了,事實上用過的都說Win7/Vista和XP在使用上根本沒有差異,Windows操作方式仍舊是Windows操作方式~ 差別在外觀變漂亮了,新功能變多且更實用了,
只是有人把這些話當屁話,當沒聽到~ 自己用了10分鐘就自生出自己的一套感想(10分鐘感想) 冏rz 冏rz 冏rz



8fad54849e1e93395c6d1ada8be38f1e?size=48&default=wavatar
1人給推

10.  library (發表於 2010年11月25日 22:27)

是說

這功能有需要講到那麼複雜嗎?

明明是簡單的一樣功能


簡單解釋「媒體櫃」(library)就"類似"瀏覽器"收藏夾"之類的東西
只不過"收藏夾"是用來放網站書籤
(當然這只是"類似的說法", 因為媒體櫃功能強大太多)


「媒體櫃」是收藏磁碟裡的資料夾...可以分類/排列,
讓你可以快速找到那個資料夾和裡面的檔案,
不用打開磁碟機一層層目錄去找檔案
(對那些平常懶得整理硬碟,東西亂扔亂放的用戶來說是一大福音,
自己想想每次找東西都要花掉半分鐘,你一天要花掉堆少時間?
收藏到「媒體櫃」裡的東西要查找不用一秒)



7d3fdd156874b6e2488d231e9c3e7e06?size=48&default=wavatar
12.  cockatiel (發表於 2010年12月22日 15:50)
很棒的介紹(≧▽≦),原po不用灰心!!
不同的使用者需求不同,不是每個人都只想看簡單的應用技而已,總是要有人寫稍微深入一點。

不過如果能針對某些部分在稍微解釋一下,會更令人感激

好比
→媒體櫃的XML格式定義檔是放在「%appdata%\Microsoft\Windows\Libraries」路徑底下

這段話雖然可以看懂你的意思是甚麼,不過我就不曉得「%appdata%\Microsoft\Windows\Libraries」路徑,
又是建立在甚麼之下?我如何存取他?

希望可以告訴我!
謝謝
黑眼bobo
13.  黑眼bobo (發表於 2010年12月22日 16:23)
%appdata% 是環境變數,貼到檔案總管的位址列會回傳你目前登入的使用者帳號下的appdata目錄,所以把整個路徑反白,貼到檔案總管,就會進到正確的路徑了。

發表回應

謹慎發言,尊重彼此。按此展開留言規則