メイン画像

AppData 直下の Local, LocalLow, Roaming フォルダの違い

AppData 直下の Local, LocalLow, Roaming フォルダの違い


Windows の AppData フォルダ直下には Local, LocalLow, Roaming の3つのフォルダがある。
それぞれの違いは何だろうか?

用途

Local と LocalLow フォルダには個人設定(ローカル設定)が保存される。
WindowsXP では%USERPROFILE%\Local Settingsフォルダだった。

Roaming フォルダにはアプリケーションデータが保存される。
WindowsXP では%USERPROFILE%\Application Dataフォルダだった。

考え方

Roaming ユーザーとともに別のコンピューターに移動できるもの。

Local, LocalLow ファイルサイズが大きく、ユーザーとともに移動するには負担が大きいファイルが使用する場所。

Local, LocalLow はアクセスするプロセスの信頼度の差によって使い分けられ、 相対的に危険度が高いプロセスが LocalLow を使うことになっている。

付録 - C# でそれぞれのフォルダを取得する方法

Environment.GetFolderPath メソッドを使ってパスを取得する。

Roaming フォルダの取得

GetFolderPath メソッドの引数に Environment.SpecialFolder.ApplicationData を指定する。

var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
// → C:\Users\username\AppData\Roaming

環境変数「APPDATA」から取得することもできる。

var path = System.Environment.GetEnvironmentVariable("APPDATA");
// → C:\Users\username\AppData\Roaming

Local フォルダの取得

GetFolderPath メソッドの引数に Environment.SpecialFolder.LocalApplicationData を指定する。

var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData);
// → C:\Users\username\AppData\Local

環境変数「LOCALAPPDATA」から取得することもできる。

var path = System.Environment.GetEnvironmentVariable("LOCALAPPDATA");
// → C:\Users\username\AppData\Local

LocalLow フォルダの取得

Environment.SpecialFolder 列挙型には LocalLow フォルダを表すフィールドが存在しない。
また環境変数にも LocalLow フォルダは定義されていない。
そのため、ひと手間かける必要がある。

たとえば Roaming のパスを取得してから LocalLow に置換する。
あるいは Local のパスに "Low" を連結する。
(安全そうなのは後者の "Low" を連結する方かと)

var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData)
                             .Replace("Roaming", "LocalLow");
// → C:\Users\username\AppData\LocalLow
var path = System.Environment.GetFolderPath(System.Environment.SpecialFolder.LocalApplicationData) + "Low";
// → C:\Users\username\AppData\LocalLow

参考ページ


アカウントを作成 して、もっと沢山の記事を読みませんか?


この記事が気に入ったら ことりと さんを応援しませんか?
メッセージを添えてチップを送ることができます。


この記事にコメントをしてみませんか?


酒とアクアリウムが最近の楽しみ。