Windows のフォルダー構成を理解しよう — アプリはどこにインストールされるべき?

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは。Windows Commercial Support Directory Services チームです。

Windows にソフトウェアをインストールするとき、「なぜこのフォルダーに入るの?」と疑問に思ったことはありませんか?
この記事では、Windows のフォルダーにはそれぞれ決められた役割があること、そしてアプリケーションがどこにインストールされるのが推奨されるかを解説します。


はじめに — よくある疑問

Windows にアプリケーションをインストールすると、インストール先は大きく分けて以下の 3 パターンがあります。

インストール先の例 よくあるソフト
C:\Program Files\ Office、ブラウザーなど
C:\Users\<ユーザー名>\AppData\Local\Programs\ VS Code (ユーザーインストール) など
C:\tool\ など、ドライブ直下 一部のツール (非推奨)

Program Files ではなく AppData の中にインストールされたけど大丈夫?」
C:\ の直下にフォルダーを作ってインストールしてもいいの?」

これらの疑問に答えるために、まず Windows のフォルダー構成のルールから見ていきましょう。


1. Windows のフォルダーには「役割」がある

Windows には各フォルダーには明確な役割が定められています。大きく分けると、ユーザーのデータを置く場所と、アプリケーションのデータを置く場所が区別されています。

ユーザーのデータを置く場所

ユーザーが自分で作成・編集するファイル(文書、写真、動画など)の保存先です。

対象 フォルダー 説明
自分だけのデータ C:\Users\<ユーザー名>\ ドキュメント、ピクチャ、デスクトップなど
全ユーザー共通のデータ C:\Users\Public\ 他のユーザーとも共有したいファイル

アプリケーションのデータを置く場所

アプリケーションが内部的に使う設定ファイルやキャッシュなどの保存先です。ユーザーが直接編集する必要はないため、隠しフォルダーになっています。

対象 フォルダー 説明
自分だけのアプリ設定 C:\Users\<ユーザー名>\AppData\ アプリごとの設定やキャッシュ
全ユーザー共通のアプリ設定 C:\ProgramData\ すべてのユーザーで共有するアプリデータ

ポイント: たとえば Outlook の .pst ファイルは、ユーザーのデータのように見えますが、実際にはアプリケーションが管理するデータとして AppData に保存されます。ユーザーが直接操作するのではなく、Outlook の画面を通じて管理するという考え方です。


2. AppData フォルダーの中身 — Roaming・Local・LocalLow の違い

C:\Users\<ユーザー名>\AppData\ の中には、さらに 3 つのフォルダーがあります。

1
2
3
4
AppData
├── Roaming … 別の PC に引き継いでも問題ない設定
├── Local … この PC だけで使うデータ
└── LocalLow … セキュリティが制限されたアプリ用

それぞれの役割を詳しく見てみましょう。

Roaming フォルダー

移動ユーザー プロファイルやフォルダー リダイレクトで別の PC に引き継いでも問題ない設定データ(ブラウザーのブックマーク、アプリの個人設定など)を保存します。

Microsoft の公式ドキュメント (ApplicationData クラス (Microsoft Learn)) では、RoamingFolder はユーザー設定やカスタマイズ、リンク、小さなデータ ファイルの保存に使用し、大容量のデータ、デバイス固有のデータ、即時同期に依存するデータには使用すべきではないとされています。

Local フォルダー

この PC だけで使うデータ(キャッシュ、一時ファイル、ダウンロード履歴など)を保存します。他の PC に引き継ぐ必要はありませんが、クラウドにバックアップされるため、デバイスのリセットや移行時に失われることはありません。

Microsoft の公式ドキュメント (設定とその他のアプリ データを格納および取得する (Microsoft Learn)) では、以下のように説明されています:

ローカル アプリ データは、アプリ セッション間で保持する必要があり、アプリ データのローミングには適していない情報に使用する必要があります。他のデバイスには適用できないデータもここに保存する必要があります。

LocalLow フォルダー

セキュリティが制限された状態(低い整合性レベル)で動作するアプリケーションのデータを保存します。たとえば、ブラウザーの保護モードで使われるデータが該当します。通常のアプリがこのフォルダーを使うことはほとんどありません。

❗ Roaming に保存すべきでないデータについて:
デバイス固有の情報(ローカル ファイルへのパス名など)、大容量のデータ、即時同期に依存するデータは Roaming に保存しないでください。これらは Local フォルダーに保存します。詳しくは Store and retrieve settings and other app data - Roaming data (Microsoft Learn) をご覧ください。


3. アプリケーションはどこにインストールされるべきか

パターン A: 全ユーザー向けインストール (管理者権限が必要)

PC のすべてのユーザーが使えるようにインストールする一般的な方法です。

何を置くか どこに置くか
プログラム本体 (exe, dll) C:\Program Files\ または C:\Program Files (x86)\
全ユーザー共通の設定データ C:\ProgramData\
ユーザーごとの設定データ C:\Users\<ユーザー名>\AppData\

C:\Program Files\ にはプログラム本体だけを置き、設定データやユーザーデータは置きません。これは、Program Files フォルダーには標準ユーザーの書き込み権限がないためです。

パターン B: 特定ユーザー向けインストール (管理者権限が不要)

現在サインインしているユーザーだけが使えるようにインストールする方法です。管理者権限が不要なため、UAC (ユーザー アカウント制御) のダイアログが表示されません。

何を置くか どこに置くか
プログラム本体 C:\Users\<ユーザー名>\AppData\Local\Programs\
共有コンポーネント C:\Users\<ユーザー名>\AppData\Local\Programs\Common\

「AppData にインストールされたけど大丈夫?」の答え:
VS Code のユーザーインストールが AppData\Local\Programs\ にインストールされるのは、Microsoft のガイドラインに従った正しい動作です。管理者権限なしでインストールする場合の正式な保存先がこのフォルダーです。


4. 推奨されないインストール方法

ドライブ直下にフォルダーを作る

1
2
C:\MyApp\         ← 非推奨
C:\tools\ ← 非推奨

C:\ ドライブの直下にアプリケーション用のフォルダーを作成することは、Microsoft のガイドラインで明確に推奨されていませんProgram Files フォルダーにはパスにスペースが含まれることで問題が起きるアプリもありますが、それでもドライブ直下への配置は避けるべきとされています。

Program Files に設定データを保存する

C:\Program Files\<アプリ名>\config.ini のように、Program Files の中にアプリの設定ファイルを置くのも不適切です。標準ユーザーには書き込み権限がないため、設定の保存に失敗します。設定データは ProgramDataAppData に保存しましょう。


5. まとめ — フォルダー構成の全体像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:
├── Program Files\ … 全ユーザー向けアプリの本体 (64-bit)
├── Program Files (x86)\ … 全ユーザー向けアプリの本体 (32-bit)
├── ProgramData\ … 全ユーザー共通のアプリ設定 (隠しフォルダー)
├── Users\
│ ├── <ユーザー名>\
│ │ ├── Desktop\ … デスクトップ
│ │ ├── Documents\ … ドキュメント
│ │ ├── Downloads\ … ダウンロード
│ │ └── AppData\ … アプリ設定 (隠しフォルダー)
│ │ ├── Roaming\ … 別の PC に引き継いでも問題ない設定
│ │ ├── Local\
│ │ │ └── Programs\ … ユーザー向けアプリの本体
│ │ └── LocalLow\ … 制限付きアプリのデータ
│ └── Public\ … 全ユーザー共有のデータ
└── Windows\ … OS のシステムファイル

6. 環境変数の対応表

スクリプトや設定で使われる環境変数と、実際のパスの対応です。

環境変数 展開されるパスの例
%USERPROFILE% C:\Users\<ユーザー名>
%APPDATA% C:\Users\<ユーザー名>\AppData\Roaming
%LOCALAPPDATA% C:\Users\<ユーザー名>\AppData\Local
%ProgramData% C:\ProgramData
%ALLUSERSPROFILE% C:\ProgramData
%ProgramFiles% C:\Program Files
%ProgramFiles(x86)% C:\Program Files (x86)
%PUBLIC% C:\Users\Public

参考情報

この記事の内容は、以下の Microsoft 公式ドキュメントに基づいています。