アプリケーション名とバージョンに応じて、書き込む正確なフォルダーを提供する Path.GetDirectoryName(Application.UserAppDataPath) のようなシステムは存在しますか?
いいえ、少なくとも Windows 7 で実行している場合は存在しません (Windows 8/WinRT/Windows ストア アプリについては知りません)。Environment.GetFolderPath(...)
実行可能な解決策は、出力をアプリケーションのカスタム パスと連結することです。通常、衝突の可能性を減らすために、それはYourOrganization\YourApplication
、またはのようなものでYourFullName\YourApplication
、場合によってはバージョンを追加することもできます。
または、ProgramData はそれを行うのに適切な場所ではありません。
これは、アプリケーション全体の情報をディスクに保存するのに適した場所です。アプリケーションに関連し、マシンにログオンしている Windows ユーザーごとに異なる情報は、代わりに<User folder>\AppData\Roaming\...
、または<User folder>\AppData\Local\...
.
注意: 誰かがコメントで既に述べたように、通常はC:\ProgramData...内で作業するには管理者権限が必要です。そのため、インストール段階でProgramData内にフォルダーを作成して与えるセットアップ プロジェクトを準備する必要があります。適切な権限。