2015-01-13 12 views
6

すべてのユーザー間で共有されるアプリケーション固有のデータを含むファイルを読み書きする必要があります。アプリケーション固有のデータフォルダ(ProgramData)を取得する方法は?

Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)を使用しようとしましたが、C:\ ProgramDataしか返しませんでした。

私の質問は:

は、それは私のアプリケーション名とバージョンに応じて、私に書くための正確なフォルダを与える Path.GetDirectoryName(Application.UserAppDataPath)のようなシステムを、存在していますか?

またはProgramDataは適切な場所ではありません。

ありがとうございました。

+0

Windows.Storage.ApplicationData.Current.LocalFolderを試してみてください。 – Xeun

+0

WindowsネームスペースはWindowsForm - .Net 4.0でも利用できますか? – paulinodjm

+0

うーん、良い質問ですが、私はそう思わない、申し訳ありません。 しかし、あなたは間違いなくここであなたの欲望に合った道を見つけなければなりません:http://www.codeproject.com/Tips/370232/Where-should-I-store-my-data – Xeun

答えて

4

Path.GetDirectoryName(Application.UserAppDataPath)のようなシステムが存在するため、私のアプリケーション名とバージョンに応じて、書き込むフォルダが決まりますか?

少なくとも、Windows 7(Windows 8/WinRT/Windows Storeアプリケーションについてはわかりません)では動作しません。実現可能な解決策は、アプリケーションのカスタムパスを使用してEnvironment.GetFolderPath(...)の出力を連結することです。通常、衝突の可能性を減らすために、YourOrganization\YourApplication、またはYourFullName\YourApplicationのようになり、おそらくバージョンを追加することもできます。

また、ProgramDataは適切な場所ではありません。

これは、アプリケーション全体の情報をディスクに保存するのに適した場所です。アプリケーションに関連し、マシンにログオンするWindowsユーザーごとに異なる情報は、代わりに<User folder>\AppData\Roaming\...、または<User folder>\AppData\Local\...になるはずです。

用心:誰かがすでにコメントで述べたように、通常の1は内部の作業をするために、管理者権限を必要とC:\はProgramData ...は、それゆえあなたは、中相をインストールするセットアッププロジェクトを準備する必要があるだろう、 ProgramDataの中にフォルダを作成し、適切な権限を与えます。

関連する問題