UserAppDataPathでパス名を獲得したい – プログラミング – Home

通知
すべてクリア

[解決済] UserAppDataPathでパス名を獲得したい


aki
 aki
(@aki)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

ApplicationクラスのUserAppDataPathを利用してパス名を獲得したいのですが、コードにはどの
ように記述をすれば実現できるのでしょうか。宜しくお願いします。


引用未解決
トピックタグ
しま
 しま
(@しま)
ゲスト
結合: 18年前
投稿: 123
 

開発環境(例えば、Visual Studio のバージョンなど)と動作環境(OS のバージョンなど)
とを書いてください。もし、 Application クラスが DotNet のクラスを指すのなら、
DotNet のバージョンも示してください。
これらの組合せによっては考慮すべき内容が変わってくる場合があります。

もし、Visual Studio をお使いなのでしたら msdn は検索された上で、分らなかったの
でご質問なさっているのでしょうか?そうであれば、どこが分らないのか書いてくださ
ると回答が得やすいでしょう。


返信引用
aki
 aki
(@aki)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

情報不足で申し訳ないです。
開発環境はVS2010でOSはWindows7です。
アプリケーションの設定を各ユーザーごとにファイルに保存したく、UserAppDataPathプロパテ
ィは、ユーザーのアプリケーションデータのパスを返すということで、これを使用してファオル
ダーへのパスを設定し、そこにファイルを作成、保存させたいと考えております。
例えば、
C:\Documents and Settings\[UserName]\Application Data\[CompanyName]\[ProductName]\
[ProductVersion]
のようなフォルダのパスを返すようです。しかし、具体的にはどのような記述が必要なのか分か
らず、この点を教えていただけないでしょうか。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

こんなんでいぃでしょ。

int main(array<System::String^>^ ) {
System::String^ path = System::Windows::Forms::Application::UserAppDataPath;
System::Console::WriteLine(path);
return 0;
}


返信引用
aki
 aki
(@aki)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

お返事ありがとうございます。
これを可能とするためには、.net frameworkを有効にする必要があるということで、オプション
に/clrを付けてコンパイルする必要があることを知りました。私は.net frameworkは使ったこと
がなく、まったくのど素人です。このオプションを付けると、更に、MFCに関して、スタティッ
クライブラリから共有DLLとする必要があり、また同時に、/MTを/MDに変更する必要があること
も分かりました。できればスタティックライブラリのままで行いたいのですが、.net framework
を使用せずに、UserAppDataPathのようなユーザー固有のフォルダーのパスを獲得する方法はな
いものでしょうか?
ご教授お願いいたします。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

SHGetKnownFolderPath 関数に FOLDERID_RoamingAppData を渡します。
http://msdn.microsoft.com/en-us/library/bb762188.aspx
http://msdn.microsoft.com/en-us/library/dd378457.aspx

ただし、これでは
C:\Documents and Settings\[UserName]\Application Data
までしか取得できません。

なお、このパスは Windows Vista 以降では
C:\Users\[UserName]\AppData\Roaming
になります。

そこから先の
[CompanyName]\[ProductName]\[ProductVersion]
部分も必要であれば、そこは自分でつけ足してやる必要があります。

Windows Vista よりも古い OS をサポートする必要があるなら、代わりに SHGetFolderPa
th 関数と CSIDL_APPDATA を使います。
http://msdn.microsoft.com/en-us/library/bb762181.aspx
http://msdn.microsoft.com/en-us/library/bb762494.aspx


返信引用
aki
 aki
(@aki)
ゲスト
結合: 23年前
投稿: 19
Topic starter  

ありがとうございました。
これで解決できました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました