質問

すべてのユーザーに対して同じであるが、プログラムに対して書き込み可能である必要があるプログラム データ ファイルを保存する適切な場所はどこですか?MS Windows XP 上の同等の場所はどこでしょうか?通常のユーザーによるインストール後は C:\ProgramData に書き込みできないと読みました。本当?Platform SDK を使用してプログラムでそのディレクトリを取得するにはどうすればよいですか?

役に立ちましたか?

解決

CSIDL_COMMON_APPDATA の CSIDL を使用した SHGetFolderPath()。

続きを読む http://msdn.microsoft.com/en-us/library/bb762181(VS.85).aspx

バッチ ファイル内のパスが必要な場合は、%ALLUSERSPROFILE% 環境変数を使用することもできます。

他のヒント

さまざまなオプションの概要がここにあります。 http://blogs.msdn.com/cjacks/archive/2008/02/05/where-Should-i-write-program-data-instead-of-program-files.aspx

プログラムファイルの代わりにプログラムデータをどこに記述すればよいですか?

一般的なアプリケーションコードの更新は次のとおりです。「私のアプリケーションは、ファイルをプログラムするためのファイルを書き込むために使用されていました。それは他の人と同じようにそれを置くのに良い場所のように感じました。それは私のアプリケーションの名前をすでに持っていて、私のユーザーが管理者だったので、うまくいきました。しかし、今では、これは私がかつて思っていたほど物事を貼り付けるのに素晴らしい場所ではないかもしれません。では、代わりにファイルをどこに配置すればよいですか?」

実は SHGetFolderPath は廃止されました。

SHGetKnownFolderPath 代わりに使用する必要があります。

次のものが使用できます。

CString strPath;
::SHGetSpecialFolderPath(NULL, strPath.GetBuffer(1024), CSIDL_COMMON_APPDATA, FALSE);

見る この特定の質問に関する Raymond Chen の記事.

要するに、あなたが求めているのは、 セキュリティホール.

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