保存数据:Program Files 与 AppData

保存数据:Program Files 与 AppData

我的问题是,为什么程序要将数据保存在应用程序数据文件夹,而不是在他们的程序文件' 安装文件夹?他们是否真的将所有本地数据存储在 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/

相关内容