プログラムのバイナリをそのデータから分離することは、一般的な概念です (ベスト プラクティスとさえ言えます)。
たとえば、すべての Windows アプリは の下にありますが、それらのデータは、個人データ用または共有データ用Program files
のユーザーの下に書き込みます。プログラムに非常に具体的な要件がない限り、このガイドラインに従う必要があります。%APPDATA%
%ProgramData%
データの種類によっては、特にユーザーにデータをすばやく見つけてもらいたい場合は、ユーザーのドキュメント フォルダーの下にサブフォルダーを作成することもできます。
C# を使用すると、 Environment.GetFolderPath Methodを使用して、この特別なフォルダーを簡単に見つけることができます。例えば:
public string GetDataFolder()
{
var appDataPath = Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData, // Search under %APPDATA%
Environment.SpecialFolderOption.Create // Create the folder if it does not exists
);
var dataFolder = Path.Combine(
appDataPath,
"MyApplication"
);
return dataFolder;
}
Environment.SpecialFolderOption Enumerationを見ると、一般的な場所のほとんどが簡単に見つかることがわかります。
データがすべてのユーザーによって共有されると述べたように、を%ProgramData%
使用して検出される を具体的にターゲットにする必要がありEnvironment.SpecialFolder.CommonApplicationData
ます。
すべてのユーザーが使用するアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。
最終的に、このフォルダは (デフォルト設定で) として解決されますC:\Programdata\MyApplication
。