話題なっていた時に話題にせず乗り遅れ感ありますが。。。
すべてのユーザ共有のドキュメントフォルダって、
Windows Vistaでは%PUBLIC%\Documents
(通常C:\Users\Public\Documents)
Windows XPでは%ALLUSERSPROFILE%\Documents
(通常C:\Documents and Settings\All Users\Documents)
だと思いますが同じプログラムでVistaとXP両方を対象にする場合は、環境変数PUBLICかALLUSERSPROFILEの中のパスに"Documents"くっつけるしかないんですね。
対応するものがEnvironment.SpecialFolder 列挙体の中にないですね。
Environment.SpecialFolder 列挙体
http://msdn2.microsoft.com/ja-jp/library/system.environment.specialfolder(VS.80).aspx
ユーザ共通のプログラムデータの場所って、
CommonApplicationDataでとれるパス
Windows XPではC:\Documents and Settings\All Users\Application Data
Windows VistaではC:\ProgramData
といのもありますが、Jittaさんのブログエントリをみるとここは既定の権限設定では「すべてのユーザ」は既存ファイルに書き込めないようですし、ユーザも直接アクセスする必要がある場合はとてもわかりにくい場所(とくにXP)ですね。
なんか適切な関連APIはほかにないのでしょうか。
私が誤解している点があればご指摘ください。
その他、こうするといいよ的情報をお持ちでしたら教えてください。
関連・参考リンク
@IT会議室 > Insider.NET 会議室 > ProgramFilesの下に作ったフォルダのセキュリティ権限
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?mode=viewtopic&topic=39582&forum=7&start=0
ちゃっぴさん
「なぜ %PROGRAMFILES% に書き込んではいけないか? 」
http://blogs.wankuma.com/tyappi/archive/2007/07/12/84794.aspx
Jittaさん
「All Users/Application Data って...」
http://blogs.wankuma.com/jitta/archive/2007/06/28/82782.aspx