ProgramData和AppData之间有什么区别?

74

我需要为我的程序存储一些用户特定的配置数据。在用户目录中的“应用程序数据/AppData”和系统驱动器根目录中的“程序数据/ProgramData”似乎都是不错的选择。

“程序数据/ProgramData” 和 “应用程序数据/AppData” 之间有什么区别,我应该使用哪个?

2个回答

101

简单来说,ProgramData包含不特定于用户的应用程序数据。这些数据将对计算机上的所有用户可用。任何全局数据都应放在此处。

AppData 文件夹包含配置设置,特定于某个用户的下载信息/文件。因此,例如,任何特定于用户的首选项和配置文件可以存储在 AppData 文件夹中。AppData 文件夹进一步分为三个子文件夹:
Roaming - 该文件夹包含可以随用户配置文件从一个计算机移动到另一个计算机的数据。
Local - 该文件夹包含不会随用户配置文件移动的数据。
LocalLow - 您可以将低级访问信息(例如,与保护模式下运行的 Web 浏览器相关的信息)放入此文件夹。

现在,您可以根据信息类型决定最佳存储位置。

参考链接:Windows CSIDLAppData


安装程序创建的日志文件应该放在哪里?这似乎是一个应用程序特定的问题。但同时,它也涉及到与运行安装程序的用户相关的问题(尤其是当安装过程中使用“仅为我安装”选项时)。为什么没有运行安装程序的用户会关心其对应的日志文件呢? - RBT
你对Local和ProgramData的定义听起来很相似,您需要澄清一下吗? - Epirocks
记录一下:我偷了你的帖子并在这里使用了它:https://stackoverflow.com/questions/50758075/64-bit-java-rcp-application-requires-admin-priviliges-when-placed-in-c-program/50758854#50758854 ;-) - Stefan

6

我认为你应该把所有用户特定的文件放到appdata中,因为它位于

C:\Users\UserName\AppData

而Programdata不是针对用户特定的。我认为,当不同用户使用您的程序时,它可以用于共享程序数据。

请参考此stackoverflow问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接