共用方式為


瞭解屬性處理程式

屬性是由稱為屬性識別碼 (PID) 的標識碼來表示。 每個屬性都必須有全域唯一標識碼 (GUID)。 此標識碼是由 GUID 所組成,代表稱為屬性集的屬性集合,加上字串或 32 位整數,以識別集合內的屬性。 如果使用標識碼的整數形式,0x00000000、0xFFFFFFFF和0xFFFFFFFE的值會視為無效。 廠商可以藉由將屬性放在自己的 GUID 所定義的屬性集中,以確保其屬性是唯一定義的。

重要

請務必謹慎且策略地為架構的第一個版本定義屬性。 在註冊架構之後,自定義屬性的任何變更(例如數據行寬度或屬性類型)都不會反映在資料庫中。 在系統上註冊一次架構之後,才能辨識這些變更的唯一方法是重建索引,然後註冊新的架構,或註冊架構,然後為每個後續版本建立新的屬性(由正式名稱和 PKEY 組成):例如 PKEY_GroupName_PropertyNameV2PKEY_GroupName_PropertyNameV3等等。 我們不建議以此方式建立新的屬性,因為多個多餘的數據行可能會影響系統效能。

 

本主題的組織方式如下:

中繼資料

在 Windows Vista 和更新版本中,以元數據為基礎的新屬性系統是組織檔案、電子郵件和聯繫人等專案的核心。 在這個新的屬性系統中,專案可以根據其元數據進行搜尋,而且使用者可以讀取或寫入該元數據。 此系統中的元數據是由實作為名稱/值組的 可延伸屬性 集來表示。

在 Windows Vista 和更新版本中,一組廣泛的屬性涵蓋相片、音樂、檔、訊息、聯繫人和檔案等專案的詳細數據。 如果沒有現有的屬性符合其需求,獨立軟體供應商(ISV)可以將自己的屬性引入平臺。

開啟元數據

Windows Vista 和更新版本中的屬性系統是開放式元數據系統。 檔格式會儲存指派給它的任何屬性,並在查詢時公開該值,而不論相關性或意義為何。 這可讓第三方開發人員將額外的屬性附加至檔案,而不需要變更與其相關聯的屬性處理程式。 開放式元數據是一個強大的概念。 如需如何支援 XML 型檔案格式之開啟元數據的詳細資訊,請參閱初始化屬性處理程式中的

注意

屬性處理程式一律與特定文件類型相關聯;因此,如果您的檔案格式包含需要自定義屬性處理程式的屬性,您應該一律為每個檔格式註冊唯一的擴展名。

 

關於屬性處理程式

在 Windows Vista 和更新版本中,Windows 具有可延伸的屬性系統,可用來儲存和擷取您存取之檔案和數據項中的元數據。 Windows 檔案總管和 Windows 搜尋系統以及其他應用程式,使用屬性處理程式來讀取和修改此元數據。 如果您是擁有特定文件類型的開發人員,您應該註冊屬性處理程式,讓屬性系統存取檔案中的元數據。 在某些情況下,您可以使用現有的屬性處理程式來讀取及了解檔格式及其屬性;在其他情況下,您可能需要為檔案類型開發新的屬性處理程式。

撰寫屬性處理程式的第一個步驟是考慮檔類型所支援的屬性。 屬性值會儲存在檔案數據流中,主要是為了啟用可傳輸性。 當屬性值儲存在檔案本身時,如同此系統,使用者可以將檔案複製到另一部計算機、USB 快閃磁碟驅動器或其他檔系統,或以電子郵件附件傳送檔案,屬性會隨檔案一起移動,且永遠不會同步或遺失。 因此,如果檔格式支援儲存額外的資訊,最好將屬性儲存在檔案本身。

下一個步驟是判斷檔案應該提供的屬性。 您一開始可能會認為一組有限的屬性已足夠。 音訊檔案只能支援音訊相關屬性,並結束該處。 然而,該音訊檔案可能是一個法院的錄音,由律師事務所封存。 在此情況下,律師事務所當然會想要將其他非音訊屬性與此檔案產生關聯,例如案例號碼。 音訊檔格式的提供者無法判斷使用其格式的所有案例。 因此,它們應考慮啟用屬性系統所支援之任何任意屬性的毛毯式儲存。

舊版技術

Microsoft Windows NT 檔案系統 (NTFS) 次要串流技術已開發,可透過文件系統層的替代數據流集來支援檔案的額外資訊持續性。 人們可能會想知道,為什麼這些次要數據流不是用來儲存屬性的主要方法,尤其是開啟的元數據支援。 主要原因是這項額外資訊的可傳輸性。 不幸的是,許多案例中都會移除這些替代數據流,包括用戶端快取支援 (CSC)、將檔案傳送為附件,以及將檔案複製到非 NTFS 存放區。

次要數據流不提供強固的解決方案,其中屬性保證會隨檔案一起移動,因此,Windows Vista 屬性系統不會提供內建機制來利用次要 NTFS 數據流來儲存屬性。 ISV 也強烈建議不要建置使用次要數據流來儲存屬性的屬性處理程式。 當然,在某些情況下,NTFS 次要數據流是適當的,特別是當應用程式可以保證他們處理的檔案一律儲存在NTFS磁碟區中,而且不會因為使用者互動而移動。

使用種類名稱

使用屬性清單

初始化屬性處理程式

註冊和散發屬性處理程式

屬性處理程式最佳做法和常見問題