2016-04-25 3 views
0

私はvs C#wpfで書いているプログラムのために、ユーザのコンピュータにいくつかのユーザ関連情報を保存する必要があります。私が知る限り、これはほとんどの場合、C:\ Program Files内にフォルダを作成し、サブフォルダ内の任意のプログラム関連情報をそのフォルダに追加することによって行われました。いくつかのブラウジングを行った後、私は多くの人にこのメソッドが期限切れであると言ってきました。そこではフォルダを作成するためにアクセスが拒否されたり、管理者アカウントなどでしか機能しないことがあるからです。 \ username \ appdata \ roamingまたはc:\ users \ username \ appdata \ localに移動します。だから私の質問は、ユーザーのコンピュータにプログラムデータを保存するための最高の最新の方法は何ですか?最新のプログラムファイルのプログラムフォルダを維持していますか?

+1

基本的には多くのプログラムがまさにそれをやった、プログラムファイルに格納し、ユーザーのものにOKではありませんでした。マイクロソフトでは、どこに何を置くべきかについて非常に良い文書を持っています –

+0

なぜアプリケーション自体にローカルデータベースを追加しないのですか? – ChiefTwoPencils

+0

@ChiefTwoPencilsとあなたはDBをどこに保管しますか?それはこの質問に戻ってくるだけです。 – yaakov

答えて

1

このマイクロソフト開発者向けブログWhere Should I Store my Data and Configuration Files if I Target Multiple OS Versionsを見てみましょう:ここ

すると、アプリケーションの用途とは、ユーザーごとに一意である、あなたのローカルユーザーごとの設定ファイル

コンフィギュレーション・データ・ファイルを保存することができます例です。 。個々のマシンにローカルに留まり、Active Directory経由では同期されません。これらのconfigsは、すべてのユーザーに利用可能であるべきである場合

%USERPROFILE%\AppData\[Roaming,Local] 

Example: MyMachineSpecificData.xml 
Windows 7: %USERPROFILE%\AppData\Local\<MyCompany>\<MyApp> 
Vista:  %USERPROFILE%\AppData\Local\<MyCompany>\<MyApp> 
XP:   %USERPROFILE%\Local Settings\Application Data\<MyCompany>\<MyApp> 

だから、基本的にユーザーごとの設定ファイルは、に行く必要があり、使用することができ、ユーザーごとのデータについては

%SystemDrive%\ProgramData 

Libraries 。ユーザ独立アクセスの場合C:\Users\Public

また、Windowsレジストリを使用して設定を保存することもできます。

+1

'%USERPROFILE%\ AppData \ [Roaming、Local]'は '%APPDATA%'と '%LOCALAPPDATA%'に変換されるので、各OSで自分で計算する必要はありません。 – yaakov

+0

@codranお役立ち情報私はcmdで 'set'を実行するとすべての環境変数が正しく表示されると思いますか?残念ながら、私はそれを確認するためにウィンドウを使用していません。しかし、それはあなたが正しいように思われる。 – incBrain

1

このMSDN articleもご覧ください。

これは主にUWPアプリケーション用ですが、WPFアプリケーションを開発している場合でもどこに配置するのか一般的な考えがあります。

あなたはこれらのフォルダが必要になる場合があります

  • Environment.SpecialFolder.ApplicationData
  • Environment.SpecialFolder.LocalApplicationData
  • Environment.SpecialFolder.CommonApplicationData
関連する問題