虚拟文件夹

在電腦領域，**虛擬資料夾**（英語：Virtual folder）通常指管理一批檔案的一個虛擬的資料夾，它不依賴於目錄樹層級中的位置，而是由軟體將資料儲存中的結果合併顯示。這可能是一個資料庫或自訂索引，然後在資料夾視圖中以可視方式呈現它們。虛擬資料夾可以被認為是列出具有特定標記檔案的一個視圖，在需要時即時將動態內容類比為一個資料夾並呈現。在電腦科學中有幾個相似的理念，包括儲存的搜尋、已儲存的查詢和過濾等。

## 技術

虛擬資料夾為使用者提供一種更方便方法管理一批內容相關的檔案。根據使用者所需的特定標準的或所有的檔案被聚合到一個虛擬資料夾。虛擬資料夾中的檔案不限於硬碟上的某個物理位置，也可能其他形式。事實上，虛擬資料夾中的檔案甚至可以並未儲存在硬碟上，它們可以是網路共享或自訂套用資料庫中的內容，例如郵件或其他資料庫。

檔案「不能」被儲存在虛擬資料夾中，因為那本質上只是一個檔案儲存的搜尋查詢。嘗試儲存檔案到虛擬資料夾可能遇到多種情況，取決於軟體實現，檔案可能被重新導向到某個物理儲存空間。

大多數實現都會預先索引硬碟或特定位置上的檔案以加速搜尋，這樣在搜尋開始時可以查詢索引以快速展現和完成搜尋任務，避免等待索引和查詢整個資料夾結構。

## 實現

虛擬資料夾可以是作業系統中的一種結構。BeOS 包含一種被稱為「已儲存查詢」的虛擬資料夾，這對虛擬資料夾在作業系統中的開發產生了影響（包括 Mac OS X、Windows 和 Linux）。虛擬資料夾會在整個檔案系統上執行搜尋以動態填充內容，及使用子集或已快取的搜尋結果。

## 歷史

### BeOS

此作業系統的首個開發者預覽版發布於 1995 年 10 月，包括類似資料庫的功能，使使用者能更方便地管理自己的檔案。為了此功能，檔案系統會索引特定檔案內容以說明快速搜尋。預設情況下，檔案系統會自動索引檔名、大小和最後修改日期，當其他應用程式或使用者告知時還可建立其他內容的索引。

當使用者執行檔案搜尋時，在資料夾 "/boot/home/queries" 中會建立一個檔案，檔案名稱根據查詢內容和搜尋的日期時間衍生，例如「Name = Western Infirmary - Mar 21, 11:59:40 PM」。搜尋的查詢條件儲存在被稱為「qrystr」檔案的一個內容中。當該檔案被打開時，檔案系統會查詢索引和打開一個跟蹤視窗，保持最新的匹配條件的檔案列表。

更多搜尋功能被添加到後續的版本中。Release 2 引入了編輯已儲存查詢的功能，Release 3 允許使用者自己定義已儲存查詢的名稱在 1998 年的 Release 4 之前，所有查詢都會無限期儲存。但從 R4 開始，BeOS 開發者為所有查詢引入了 7 天的時間限制。如果使用者想將一個查詢保留下來，他們可以在「尋找」對話方塊取消「臨時」標記。

### Mac OS X

BeOS 檔案系統的領頭開發者之一 Dominic Giampaolo 曾參與蘋果公司的 Mac OS X 作業系統並為其添加了虛擬資料夾系統。

2005 年 4 月，蘋果公司發布 Mac OS X v10.4，其中就包括被稱為「**智慧型資料夾**」的虛擬資料夾。這些資料夾實質上由 Spotlight 引擎動態更新以包含匹配特定條件的內容。例如，這可以給你帶來一個特殊資料夾，其中包含所有包含關鍵詞「shpadoinkle」且在最近 7 天曾經編輯的 Word 文件。智慧型資料夾是通過儲存一個 Spotlight 搜尋來建立，搜尋條件記錄在一個.**savedSearch** 字尾的內容列表檔案中，預設情況下儲存在「/Users/username/Library/Saved Searches」資料夾。

在許多 Spotlight 引擎的應用程式中可以看到「智慧型資料夾」概念的變種，通常以紫色色調的齒輪圖示標記。例如：郵件中的智慧型電子信箱和通訊錄中的智慧型組。

在沒有 Spotlight 的 Mac OS X 早期版本中，iApps（iTunes 和 iPhoto）有一個類似的概念，但它們沒有使用系統級的 Spotlight 引擎。

### Windows

2006 年 11 月，微軟發布 Windows Vista，其中允許使用者儲存任何搜尋查詢為「搜尋資料夾」，這就是一種虛擬資料夾。搜尋資料夾的設計目的是使用者不需要記住自己的檔案儲存在哪裡。搜尋資料夾不是物理資料夾，它本質上是一個 XML 檔案，為 Windows 搜尋子系統提供一個已定義查詢的儲存。正因如此，搜尋資料夾可以在任何可建立普通資料夾的地方建立。類似的方法 Windows XP 中也存在，當 Windows 索引服務啟用時，搜尋可以儲存為.fnd 檔案。但是，在 Windows XP 中的已儲存搜尋查詢只儲存了使用者的搜尋條件；使用者仍需指定搜尋位置並再次執行搜尋，並且搜尋結果非動態呈現。

無論何時存取「搜尋資料夾」，它都會返回與已儲存搜尋查詢相關的結果；結果清單中呈現的是實際的檔案和資料夾。搜尋查詢的定義可基於許多參數和內容，包括檔名、指定日期、檔案本身內容、相關元資料、檔案類型、檔案所在位置及其他各種內容。被稱為「查詢組件」的功能允許搜尋者基於其他「搜尋資料夾」進一步細分結果。

Windows Vista 在預設情況下， references the profile of the user who originally created a saved search as part of the query's scope, which includes the disk partition. This design choice does not prevent saved searches from being shared with other users, but it prevents them from operating on different partitions or user profiles. 雖然使用者可以手動修改已儲存搜尋的內容將參照範圍改為 % USERPROFILE% 環境變數， which will enable it to operate on other machines or profiles regardless of the original author or location, 微軟已發布一個「SearchMelt Creator」實用工具允許使用者自動執行此流程。

在 Windows Vista 的早期開發版本中，這些為預設的使用者設定檔夾預組態的「搜尋資料夾」（例如文件、音樂和圖片）取代了 Windows 開始功能表上的那些資料夾連結。在 Windows 檔案資源瀏覽器中瀏覽時，導航面板會動態填充與當前檢視視圖相關的「搜尋資料夾」；舉一個例子，當檢視「文件」資料夾時，導航面板會基於文件的作者、關鍵詞、類型和最近更改的文件生成一個「搜尋資料夾」。這些預發布版本的作業系統也包括其他虛擬資料夾，搜尋都通過主要的「媒體櫃」搜尋資料夾聚合。 微軟的表示這種做法的目標是完全超越傳統的物理資料夾概念，但公司收到的回饋顯示大量使用者對新的方式感到困惑 / 混亂。尤其是「搜尋資料夾」被放在開始功能表導致人們相信它們是具有類似名稱和內容的多個物理資料夾。

基於這種回饋，公司決定恢復在開始功能表上放置物理資料夾的連結，方法類似以前 Windows 版本的顯示方式，並移除幾個至 Windows Vista 發布到製造商時可用的「搜尋資料夾」。儘管在介面上不那麼明顯，該作業系統仍包含幾個預組態的搜尋資料夾：最近的文件、最近的電子郵件、最近的音樂、最近的圖片和影片、最近的更改以及「與我共享」，這些都是由一個「索引位置」搜尋資料夾提供，實現了早期的「媒體櫃」概念。

在 Windows 7 中，虛擬資料夾的概念被顯著實現為「媒體櫃」功能。類似「儲存的搜尋」，「媒體櫃」在本質上只是一個副檔名為 `.library-ms` 的 XML 檔案，功能是收集具有特定內容的一批檔案並在熟悉的資料夾風格介面上顯示它們。媒體櫃在檔案總管上進行了命名空間擴充，其 XML 檔案可以在各 Windows 或網路上重用。

### GNOME

在 GNOME 2.14 中，儲存的搜尋是一個虛擬資料夾，內容是 Nautilus 的搜尋結果，內容來自多個後端。這些資料夾的內容在資料夾打開時會動態確定，並在檔案被建立或修改時自動更新。

### 其他實現

#### 電子郵件客戶端

虛擬資料夾是電子郵件客戶端的一種常見設計結構。在 1991 年初，基於 Emacs 的郵件閱讀器 VM 在其 5.09 版本中就已提供虛擬資料夾設計。 VM 允許使用者使用規則定義虛擬資料夾，這可涉及一個或多個物理資料夾中的郵件內容，並可基於特定選擇條件，如日期、作者、收件人、主題、郵件正文等。虛擬資料夾還可基於以前定義的虛擬資料夾建立，這樣可以根據標準重複篩選 Helix Code 在 2000 年建立的 Evolution 郵件客戶端也納入了虛擬資料夾。可以建立資料夾並自動列出與使用者定義規則匹配的郵件，例如列出所有涉及特定位址的郵件，或者所有包含特定關鍵詞的郵件。Opera 網路瀏覽器提供的新郵件客戶端（2002 年 11 月發布測試版，2003 年 1 月發布正式版）同樣提供虛擬資料夾（稱之為存取點）用於電子郵件的管理。它的虛擬資料夾會自動基於活躍聯絡人、附件和已分配標籤建立。虛擬資料夾也會因執行搜尋而建立，並且手動虛擬資料夾可以使用多個邏輯郵件頭完成自動分類（包括使用正規表示式）。Microsoft Outlook 2003 添加了類似功能，稱之為「搜尋資料夾」。2004 年 Gmail 的首個發布版本中，其所有郵件的管理就基於「標籤」實現的虛擬資料夾。Mozilla Thunderbird 也可以建立搜尋資料夾，並允許搜尋多個電子郵件帳戶。

#### 音樂客戶端

2002 年 7 月，蘋果公司宣布 iTunes 3 提供「智慧型播放列表」功能，這可以被認為是一種虛擬資料夾。唯一的區別是搜尋不是在檔案系統的資料夾結構，而是在其內部的儲存區。微軟在 2003 年也在 Windows XP 的 Windows Media Player 9 中添加類似功能，稱之為「自動播放列表」。

## 參考資料

## 參見

* Windows Vista 新功能
* WinFS