49

私のシステムでは%AppData%ApplicationDataC:\Users\<USER>\AppData\Roaming

しかし、C:\Users\<USER>\AppData\Local
また、いくつかの混乱のためにありますD:\Users\<USER>\AppData\LocalLow

string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

私の質問は、これらの場所のどれにアプリケーションがデータを保存する必要があるかということです。

これらの場所のどれを使用するかについてのガイドラインはありますか?また、間違った場所を選択した場合、問題が発生する可能性がありますか?

4

3 に答える 3

62

移動プロファイルが有効になっている場合(ドメイン環境で) 、Roamingフォルダーはマシン間でコピーされます。マシン間で共有したいアプリケーションデータに使用します。ただし、そこに大きなファイルを保存しないでください。IT部門はそれを好まないため、ファイルがコピーされるときにユーザーがログインおよびログアウトするのにかかる時間が長くなります。

フォルダはLocalマシン間でコピーされません。マシン固有のアプリケーションデータに使用します。

このLocalLowフォルダーは、特権の低いタスク(Internet Explorerなど)に使用されます。あなたはそれについて心配する必要はないはずです。

ユーザーが特別に保存したファイルの場合は、(デフォルトで)Documentsフォルダーに配置する必要があります。

于 2012-03-14T20:03:02.987 に答える
10

MSDNによると、違いはLocalApplicationDataローカルマシンにとどまり、ローミングしないことです...ApplicationDataたとえば、ユーザーが別のコンピューターからドメインにログオンした場合、ローミングします...

IEのLocalLow「保護モード」で実行されているBHOのような特定の状況を指します。

標準アプリケーションの場合は、常にを使用してApplicationDataください。LocalApplicationDataユーザーと一緒に歩き回ってはいけないものに使用してください...

于 2012-03-14T20:02:34.023 に答える
5

MSDNから-Environment.SpecialFolder列挙

ApplicationData-現在のローミングユーザーのアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。移動ユーザーは、ネットワーク上の複数のコンピューターで作業します。ローミングユーザーのプロファイルはネットワーク上のサーバーに保持され、ユーザーがログオンするとシステムにロードされます。

LocalApplicationData現在の非ローミングユーザーが使用するアプリケーション固有のデータの共通リポジトリとして機能するディレクトリ。

つまり、ApplicationData移動プロファイルとLocalApplicationData非移動プロファイルに使用します。

于 2012-03-14T20:03:07.917 に答える