何となく Blog by Jitta
Microsoft .NET 考

目次

Blog 利用状況
  • 投稿数 - 591
  • 記事 - 18
  • コメント - 2182
  • トラックバック - 183
ニュース
  • 検索エンジンで来られた方へ:
    お望みの情報は見つかりましたか? よろしければ、コメント欄にどのような情報を探していたのか、ご記入ください。
It's ME!
  • はなおか じった
  • 世界遺産の近くに住んでます。
  • Microsoft MVP for Visual Developer ASP/ASP.NET 10, 2004 - 9, 2009
サイト内検索
広告

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

その他

わんくま同盟

同郷

 

「アプリケーション固有の設定は、All Users/Application Data に書きましょう」って、勉強会でも言ったし、ここに何度か書いてきたと思うけど。



ごめんなさい!!ダメです、ここ。。。



正確には、「ユーザが読み書きできるアプリケーションのデータをしまう為には使えない」です。あるユーザが設定したことが、すべてのユーザに適用されるような時は、使用できません。それから、ログを追記していくとかも。

ここの Users に対するアクセス権限が、「読み取り(フォルダとファイル)」+「書き込み(フォルダ)」になっています。このため、新しいファイルを作ることはできるけど、すでにあるファイルに書き込むことはできません。

もちろん、最初に Administrators が作って、アクセス権を変更するってんなら、話は別ですよ。

そして、なんか、XP と Vista で動作が違うような気がする。Vista では、CStdioFile でファイルを作ろうとしたときに、CFileException が送出されない。。。

サポート情報に「Visual C++ 2005 または Visual C++ .NET を使用して、ユーザーとアプリケーションのデータを適切な場所に格納する Windows XP アプリケーションを記述する方法」というのがあって、ここに、コンピュータごとのデータ (ユーザー固有ではなく、移動しない)」のデータは、CSIDL_COMMON_APPDATA 値を使用します。これは、デフォルトでは次のパスになります。とか書いてあって、さらに次のコードは、CSIDL_COMMON_APPDATA にある一時ログ ファイルを開く方法を示しています。と、ログを書き込む処理例が載っているのですが。

おお!!GetTempFileName でテンポラリなファイル名を作っている!!参りました。

投稿日時 : 2007年6月28日 22:30
コメント
  • # re: All Users/Application Data って...
    Blue
    Posted @ 2007/06/29 10:04
    ということは、コンピュータ共有の更新がありうるファイルは
    All Users/Documentsに置くことでしょうかね?
  • # re: All Users/Application Data って...
    Blue
    Posted @ 2007/06/29 10:04
    ということは、コンピュータ共有の更新がありうるファイルは
    All Users/Documentsに置くことでしょうかね?
  • # re: All Users/Application Data って...
    RAPT
    Posted @ 2007/07/03 2:38
    標準ユーザーでも、誰でも共通に、かつ自由に(昇格なしで)読み書き
    できることが保証されているフォルダ・レジストリキーが
    あるかどうかすら、
    よくわからないんですよね・・・
    (あったら知りたい)
  • # re: All Users/Application Data って...
    Jitta
    Posted @ 2007/07/03 18:00
    返信が遅れまして、申し訳ありません。

    Documents なら、書き込みもできます。
    が、アプリケーション設定がドキュメントか?という疑問はあります。

    それより問題は、Vistaで例外が発生しないことだと思うのだけど...
  • # re: All Users/Application Data って...
    ちゃっぴ
    Posted @ 2007/07/05 3:35
    どっかで書いたと思いますけど、
    All Users/Application Data の配下に
    その application 用の folder を作成して、
    ACL を適宜変更するというのが推奨される方法です。

    ACL の変更は installer で行うべきです。
  • # すべてのユーザ共有のドキュメントフォルダって…
    IIJIMASが勉強しようとしています。
    Posted @ 2007/09/08 12:36
    すべてのユーザ共有のドキュメントフォルダって…
タイトル  
名前  
Url
コメント