我的问题是,为什么程序要将数据保存在应用程序数据文件夹,而不是在他们的程序文件' 安装文件夹?他们是否真的将所有本地数据存储在 AppData 文件夹中,或者他们可以将其存储在任何他们喜欢的地方?例如,离线游戏或浏览器。
答案1
文件夹本身的位置实际上回答了这个问题。但为了清楚起见,我还是解释一下。
AppData 文件夹位于用户文件夹中,例如:C:\Users\Username\AppData,而程序文件文件夹位于 C:\
这里最大的区别是权限。如果您的电脑上只有一个用户,那么该用户在任何地方都拥有所有权限,这可能没有意义。但是如果您有多个用户,那么它就开始有意义了。每个用户在 C:\Users 中都有自己的文件夹,其中包含自己的 AppData 文件夹。这不仅意味着其他用户无权访问您的 AppData 文件夹,而且还允许一个程序只安装一次,但每个用户都有设置。
例如,如果您有 Mozilla Thunderbird 或 Microsoft Outlook(对于那些不知道的人来说,它们是电子邮件客户端),您不会想为每个用户一次又一次地安装该应用程序。您宁愿只安装一次该应用程序,但每个用户都有不同的设置。因为不是每个用户都有相同的电子邮件地址。
因此,AppData 才存在。用于用户的设置。
第二个原因是安全性。虽然 Program Files 可以作为只执行任务且没有设置的程序的存放地,但如果用户不是该 PC 的管理员,他们就无法写入 Program Files 文件夹,因此程序本身根本无法进行更改。然而,在 AppData 中,即使用户不是管理员,他们也始终有权在那里写入。因此,需要写入数据的程序(例如带有缓存的 Web 浏览器)必须使用 AppData 来写入该缓存,否则用户每次启动程序时都会收到要求管理员访问权限的 UAC 提示。
答案2
为什么程序将其数据保存在 AppData 文件夹中而不是在 Program Files 的安装文件夹中?
Program Files
是用于存储程序本身,AppData
是存储与程序相关的用户特定信息。(并且ProgramData
是存储与程序相关的非用户特定信息)。
他们是否实际上将所有本地数据存储在 AppData 文件夹中,或者他们可以将其存储在任何他们喜欢的地方?
正如上面提到的,他们也可以将其存储在中ProgramData
,并且两者都只是一般行为,还有一些程序只是在 C:\ 或 Documents 文件夹中创建自己的文件夹。
以下是关于程序如何存储数据的更广泛的总结:https://www.howtogeek.com/278562/what-is-the-programdata-folder-in-windows/