既知のフォルダー

Windows Vista では、新しいストレージ シナリオと新しいユーザー プロファイル名前空間が導入されています。 これらの新しい要因に対処するために、 CSIDL 値によって標準フォルダーを参照する古いシステムが置き換えられました。 Windows Vista の時点では、これらのフォルダーは、既知のフォルダー ID と呼ばれる新しい GUID 値のセットによって参照されます。

既知のフォルダー システムには、次の利点があります。

  • 独立系ソフトウェア ベンダー (ISV) は、既知のフォルダー ID のセットを独自に拡張できます。 フォルダーの定義、ID の付与、システムへの登録を行うことができます。 CSIDL 値を拡張できませんでした。
  • システム上のすべての既知のフォルダーを列挙できます。 CSIDL 値に対してこの機能を提供する API はありません。 詳細については、「 IKnownFolderManager::GetFolderIds 」を参照してください。
  • ISV によって追加された既知のフォルダーでは、目的と目的を説明できるカスタム プロパティを追加できます。
  • ネットワークの場所など、多くの既知のフォルダーを新しい場所にリダイレクトできます。 CSIDL システムでは、 マイ ドキュメント フォルダーのみをリダイレクトできます。
  • 既知のフォルダーには、作成時または削除時に使用するカスタム ハンドラーを含めることができます。

CSIDL の値を使用する CSIDL システムと API は、互換性のために引き続きサポートされています。 ただし、新しい開発で使用することはお勧めしません。

次のトピックでは、既知のフォルダー システムの詳細について説明します。

次のリファレンス ページでは、既知のフォルダーの場所を取得したり、新しい場所にリダイレクトしたりするために使用できる Win32 既知のフォルダーの機能について説明します。 これらの関数は、古い Win32 関数を置き換えます。 新しい関数は、古い関数と同等の動作を提供するために提供されますが、新しい各関数もコンポーネント オブジェクト モデル (COM) API によって複製されます。

新しい関数 置き換えます COM 同等
SHGetKnownFolderPath SHGetFolderPath IKnownFolder::GetPath
SHGetKnownFolderIDList SHGetFolderLocation IKnownFolder::GetIDList
SHSetKnownFolderPath SHSetFolderPath IKnownFolder::SetPath

 

次のリファレンス ページでは、上記の Win32 API のすべての機能を提供する COM 既知のフォルダー API について説明します。さらに、すべての既知のフォルダーを列挙し、既知のフォルダーのプロパティにアクセスし、既知のフォルダーの標準セットを拡張する機能を追加します。

既知のフォルダー API を示す C++ サンプルは、Windows ソフトウェア開発キット (SDK) に含まれています。 コンピューターに Windows SDK をインストールすると、サンプルは %ProgramFiles%\Microsoft SDKs\Windows\v6.0\Samples\WinUI\Shell\AppPlatform\KnownFolders にあります。

既知のフォルダーのサンプル