'SpecialFolder.LocalApplicationData'和'SpecialFolder.ApplicationData'之间的区别?

Tar*_*ion 40 .net c# windows application-settings appdata

在我的系统上,%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);
Run Code Online (Sandbox Code Playgroud)

我的问题是,我的应用程序应该在哪些位置保存其数据?

是否有使用这些地点的指南?如果我选择了错误的位置,我是否会让自己接受问题?

Rog*_*mbe 50

Roaming文件夹时,漫游配置文件(在域环境中)启用机之间复制.将其用于要在计算机之间共享的应用程序数据.但是不要在那里存储大文件 - 当你这样做时,IT部门不喜欢它,并且它会增加用户登录和注销文件的时间.

Local文件夹不会在计算机之间复制.将其用于特定于计算机的应用程序数据.

LocalLow文件夹用于低权限任务(例如Internet Explorer).你不应该担心它.

对于用户专门保存的文件,您应该将它们(默认情况下)放在Documents文件夹中.


Yah*_*hia 9

根据MSDN,不同之处在于LocalApplicationData保留在本地计算机上并且不漫游... ApplicationData例如,如果用户从另一台计算机登录到域,它将会同步...

LocalLow指IE的"保护模式" likea BHO运行的具体情况?

对于标准应用程序始终使用ApplicationData.使用LocalApplicationData的东西,不应该与用户漫游...


Ode*_*ded 5

从 MSDN - Environment.SpecialFolder 枚举

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

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

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