
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
参考ページ
アカウントを作成 して、もっと沢山の記事を読みませんか?
この記事にコメントをしてみませんか?