已知資料夾

Windows Vista 引進了新的儲存體案例和新的使用者設定檔命名空間。 為了解決這些新因素,已取代以 CSIDL 值參照標準資料夾的較舊系統。 從 Windows Vista 起,這些資料夾是由一組稱為已知資料夾識別碼的新 GUID 值所參考。

已知資料夾系統提供下列優點:

  • 獨立軟體廠商 (ISV) 可以自行擴充一組已知的資料夾識別碼。 他們可以定義資料夾、提供識別碼,以及向系統註冊它們。 無法擴充 CSIDL 值。
  • 您可以列舉系統上的所有已知資料夾。 沒有 API 為 CSIDL 值提供這項功能。 如需詳細資訊,請參閱 IKnownFolderManager::GetFolderIds
  • ISV 新增的已知資料夾可以新增自訂屬性,以允許它說明其用途和用途。
  • 許多已知資料夾都可以重新導向至新的位置,包括網路位置。 在 CSIDL 系統下,只能重新導向 [我的文件] 資料夾。
  • 已知資料夾可以有自訂處理常式,可在建立或刪除期間使用。

仍支援使用 CSIDL 值的 CSIDL 系統和 API,以確保相容性。 不過,不建議在任何新的開發中使用它們。

下列主題討論已知資料夾系統的詳細資料。

下列參考頁面說明 Win32 已知資料夾函式,可用來擷取已知資料夾的位置,或將它們重新導向至新的位置。 這些函式會取代較舊的 Win32 函式。 系統會提供新的函式來提供與舊函式相等的行為,但每個新函式也會由元件物件模型 (COM) API 重複。

新增函式 取代 COM 對等專案
SHGetKnownFolderPath SHGetFolderPath IKnownFolder::GetPath
SHGetKnownFolderIDList SHGetFolderLocation IKnownFolder::GetIDList
SHSetKnownFolderPath SHSetFolderPath IKnownFolder::SetPath

 

下列參考頁面說明 COM 已知資料夾 API,其提供上述 WIN32 API 的所有功能,以及新增列舉所有已知資料夾、存取已知資料夾屬性,以及擴充一組標準已知資料夾的功能。

示範已知資料夾 API 的 C++ 範例包含在 Windows 軟體發展工具組 (SDK) 中。 在電腦上安裝 Windows SDK 之後,您可以在 %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\KnownFolders 下找到此範例。

已知資料夾範例