ASCII.jp:Windowsの「デスクトップ」や「ピクチャ」など、「既知のフォルダ(Known Folders)」を使う方法 (1/2) 您所在的位置:网站首页 foldersjp ASCII.jp:Windowsの「デスクトップ」や「ピクチャ」など、「既知のフォルダ(Known Folders)」を使う方法 (1/2)

ASCII.jp:Windowsの「デスクトップ」や「ピクチャ」など、「既知のフォルダ(Known Folders)」を使う方法 (1/2)

2023-05-07 03:33| 来源: 网络整理| 查看: 265

前へ 1 2 次へ

Windows Info 第377回

Windowsの「デスクトップ」や「ピクチャ」など、「既知のフォルダ(Known Folders)」を使う方法

2023年04月30日 10時00分更新

文● 塩田紳二 編集● ASCII

この記事をはてなブックマークに追加 シェア ツイートする 一覧 本文印刷

 Windowsには、標準で作られるフォルダーがある。たとえば「デスクトップ」や「ピクチャ」といったものだ。これらは「既知のフォルダ」(Known Folders)と呼ばれている。既知のフォルダには、ファイルシステム上のパスと対応するディレクトリ(通常フォルダー)もあれば、実体を持たない(あるいは複数のディレクトリから構成される)特殊なフォルダー(仮想フォルダー)もある。

 「既知のフォルダ」のうち、ファイルシステム上のパスを持つディレクトリのいくつかは、パスを変更することが可能だ。前述のドキュメントやピクチャは、プロパティの「場所」タブで、移動させることができる。

「既知のフォルダ」は、プロパティにある「場所」タブで、他の場所に移動させることができる。このため、環境ごとに実パスが異なる可能性がある。また、サーバーとクライアント、エディション、言語などにより表示される名称も異なる

 また、OneDriveなどのWindowsの機能により、既知のフォルダの場所を変更することがある。つまり、既知のフォルダのパスには、既定値はあるものの、マシンやユーザーごとに異なる可能性がある。このため、既知のフォルダにアクセスする場合、現在の環境におけるパスを取得する必要がある。

そもそも「既知のフォルダ」とは?

 既知のフォルダに関しては、以前にこの連載でも扱っている。Windows 10 RS5(October 2018 Update)で発生したフォルダ消失のトラブルに関してだ。このトラブルの原因が「既知のフォルダ」だった(「Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何?」)。

 Windowsでは、以前から標準のフォルダ構成がある。たとえば、Windowsは「C:\Windows」にインストールされ、プログラムは「C:\Program Folders」といった具合だ。しかし、こうした標準フォルダは、Windowsのバージョンやエディション、種類(クライアントかサーバーか)で異なるケースもある。最初は環境変数の初期値で実際の場所を示していた。当時は、すべての標準フォルダがファイルシステム上のディレクトリとして存在していたからである。

 しかし、Windows 95(1995年)/Windows NT 4.0(1996年)で、CSIDL(Constant Special item ID List)が導入された。理由の1つとしては、標準フォルダ構成がWindowsのバージョンなどで異なり、その数が増えてしまったこと(当時のWindowsはサービス終了期限が定められていなかった)。

 もう1つは、Windows 95でフォルダが導入されて、ディレクトリと特殊フォルダ(仮想フォルダ)が存在するようになったため、ファイルシステム上にユニークなパスを持たないフォルダができたからだ。たとえば、「ゴミ箱」は特殊なフォルダであり、ユーザーがエクスプローラーから見るものと、実際のディレクトリ内容(コマンドラインで表示されるもの)が異なっている。

 CSIDLでは、定数を使って標準フォルダからのパスを取得し、これを使ってフォルダにアクセスする。CSIDLには、パスを持たない特殊フォルダがあるが、そのパスを取得することはできず、専用のAPIなどを使ってアクセスする。

 Windows Vista(2006年)では、CSIDLに代わって「既知のフォルダ」(Known Folders)という仕組みが導入され、CSIDLによるアクセスは既知のフォルダの機能を使って実現されるようになった。ただ、互換性のため、現在でもCSIDLによるアクセスは可能である。

 既知のフォルダが扱う対象のリストは、以下にある。

●KNOWNFOLDERID (Knownfolders.h) - Win32 apps  https://learn.microsoft.com/ja-jp/windows/win32/shell/knownfolderid

 また、アプリケーションが独自の「既知のフォルダ」を作成することもできる。プログラムを使って、内容をエクスプローラーに表示する特殊フォルダを既知のフォルダとすることで、標準フォルダと同じ方法で移動などをさせることが可能になる。

 「既知のフォルダ」では、対象をGUIDで指定する。しかし、この方法は面倒であり、いまだにCSIDL定数によるアクセスが使われることが多い。というのも、上記のKNOWNFOLDERIDのうち、ファイルシステム上のパスに割り当てられているもののほとんどがCSIDLにも存在していたものだからだ。これは、対象をCSIDLの定数で指定するのみで、実際の処理は、.NETもしくは.NET Frameworkのオブジェクトがするため、将来的なAPIの変更には影響されない(はずである)。

前へ 1 2 次へ

ツイートする

カテゴリートップへ

この連載の記事 第376回 COM(Component Object Model)は古い技術だが、いまだに現役 あらためて解説する 第375回 エクスプローラーのプレビューウィンドウについて解説する 第374回 Windows Insider ProgramにCanaryチャンネルが追加されたことで感じるWindows 12の気配 第373回 Windows Subsystem for Linuxでsystemdが動くようになったので試した 第372回 Windowsにおけるアプリ実行エイリアスとは? 第371回 Windowsで利用可能なホットキーを探す 第370回 「Windows Terminal」「PowerToys」「Winget」 Microsoft系OSSのアップデート情報 第369回 Windows 11の3月アップデートでの新機能をプレビュー システムトレイが改良 第368回 PowerShellのコマンドの並びにある典型的なパターン 第367回 AndroidアプリがWindowsで動く、「Windows Subsystem for Android」は今どうなってる? この連載の一覧へ この記事の編集者は以下の記事をオススメしています Windows Info Windows 10「October 2018 Update」でファイル消失の原因になったKnown Foldersって何? 「半期チャンネル(対象指定)」が無くなり、Windows 10の機能アップデートはいつ実施すればいい?

ASCII倶楽部

ASCII倶楽部●キャリア決済によるお支払い終了のお知らせ ASCII倶楽部●キャリア決済によるお支払い終了のお知らせ 「ChatGPT」開発元CEOが来日 狙いは欧州への牽制か 家庭用3Dプリンター「AnkerMake M5」実機レビュー = 高精度で高速で初心者にもおススメです! アップルM2チップ生産中断か 売れ行き不振で


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有