49

在我的系统上,%AppData%导致ApplicationData哪个是C:\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例如,如果用户从另一台计算机登录到域,它将被同步......

指的LocalLow是特定情况,例如在 IE 的“保护模式”下运行的 BHO...

对于标准应用程序,请始终使用ApplicationData. 用于LocalApplicationData不应与用户一起漫游的事物...

于 2012-03-14T20:02:34.023 回答
5

来自 MSDN - Environment.SpecialFolder 枚举

ApplicationData - 用作当前漫游用户的特定于应用程序数据的公共存储库的目录。漫游用户在网络上的多台计算机上工作。漫游用户的配置文件保存在网络上的服务器上,并在用户登录时加载到系统上。

LocalApplicationData 该目录用作当前非漫游用户使用的特定于应用程序的数据的公共存储库。

简而言之,ApplicationData用于漫游配置文件和LocalApplicationData非漫游配置文件。

于 2012-03-14T20:03:07.917 回答