質問

Windowsマシンにアプリケーション設定を配置するための許容可能な出発点を探しています。複数のアプリケーションがあります。個人的な理由から、レジストリを使用したくありません。プレーンテキスト初期化ファイル(.ini)が好きです。また、実行可能ファイルと同じディレクトリにファイルを保持したいとは思いません。理想的な状況により、ユーザーまたはシステム管理者が書くことができる一般的な場所に保持することができます。

そうです、私はWindowsユーザーではありません、私の最初の推測は $HOME/.my_company_name/etc/my_company_name, 、しかし、Windowsのこれらの場所と概念的に同等のものはありますか?

調べるだけです SET 出力と推測:

%APPDATA%
%HOMEDRIVE%%HOMEPATH%\Local Settings
%SYSTEMROOT%

ちなみに、Windowsサービス内からこれらの変数がまだ存在するかどうかをまだ確認する必要があります...

役に立ちましたか?

解決

AppDataはあなたが望むものだと思います。

ShgetFolderPath(Shfolder.dllから)を使用して、このプログラムで取得できます。

から MSDN 'データと設定管理' (セクション4.2「アプリケーションデータを正しく分類および保存する」を参照してください」::

TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);

追加 [company name]\[product name]\[version] 使用してszappdataに PathAppend:

PathAppend(szAppData, "Company\Product\1.0\File.ini")

もあります CSIDL_COMMON_APPDATA 非ユーザー固有のデータの場合 CSIDL_LOCAL_APPDATA 非ローミングデータ(ユーザーが別のマシンにログオンしたときにネットワーク全体でコピーすべきではないデータ)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top