在Windows中,ProgramData文件夹的意义是什么?

55

ProgramData文件夹在Windows系统中的重要性是什么?

我注意到许多安装程序将文件存储在ProgramData文件夹的子目录中。这是有特定原因吗?

我需要为我的应用程序创建一个安装程序。我应该将用户级别的文件存储在ProgramData还是 Users下?

1个回答

58

文档中对该文件夹的预计使用方式进行了描述(强调是我的):

包含所有用户应用数据的文件系统目录。典型路径为 C:\Documents and Settings\All Users\Application Data。此文件夹用于存储与用户无关的应用程序数据。例如,一个应用程序可以将拼写检查字典、剪贴画数据库或日志文件存储在 CSIDL_COMMON_APPDATA 文件夹中。这些信息不会漫游,可供任何使用计算机的人使用。

请注意,该文档引用老版本Windows的典型路径。在现代版Windows中,它位于 %SystemDrive%\ProgramData

遗憾的是,上述引用来自现已过时的 CSIDL 文档。但是替代性 KNOWNFOLDERID 的文件没有提供有用的描述,说明您应该如何使用这些特殊文件夹。因此,据我所知,要解决这类问题,您需要参考这两个主题。


啊,这比我想出来的好多了! - Jon
@Jon 另一方面,你的MSDN链接至少提供了CSIDL_COMMON_APPDATA/FOLDERID_ProgramData的最新典型路径。在我看来,这是MSDN中相当不透明的一个领域。 - David Heffernan
12
仅作澄清:上述提到的"C:\Users\All Users"和"C:\ProgramData"是相同的文件夹。在其中一个文件夹中存放文件,另一个文件夹也会显示相同的文件。 - thedrs
2
@thedrs 这是现在的情况,因为AllData是ProgramData的符号链接,出于向后兼容性考虑而设立。之前并没有ProgramData文件夹。 - alexh
所以问题来了,我们能不能把它删掉以节省一些空间。在我的驱动器上,它占用了巨大的90.9GB的空间?这会影响到已经安装的程序吗? - Sid
显示剩余5条评论

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