Windows中ProgramData文件夹是什么鬼

问题来源

好久没用这台笔记本了,发现128gSSD怎么只剩20g空间了,用WinDirStat看了下磁盘使用统计,


PS:ProgramData是个隐藏文件夹,文件夹选项里勾选显示隐藏文件才能看到。

探其本质

应用程序的数据存放位置

  • Application Data Folders
  • Documents Folders
  • The Registry
  • The Application's Own Program Folder

作为一个非码农,平时只会Windows的图形界面操作,使用App也只会点击按钮,App是如何在内存、磁盘上运行计算全都一窍不通。今天查看了几个相关资料才理解,任何一个App运行都需要数据,比如本地安装一个有道字典可以划词翻译Word中的英文单词。如果可以离线的话,那么是因为App提前下载安装了一个字典放在电脑中,然后划词的时候去调用这本字典,而这个字典存放在哪里呢?主要就是上面列出的几个文件夹,具体位置由App的编辑写定。


溯其历史

  • Application Data Folders
    电脑上安装的任何一个App其实都是一个程序而已,程序运行都会产生数据,它们可以存放在磁盘的任何一个地方,这些由程序员写代码的时候决定。为了统一规范,过去一般都存放在Application Data Folder(C:\Users\username\AppData\),同个电脑上的不同用户有各自的APPData文件夹。
    APPData
  • Documents Folders
    一些应用程序会把缓存数据存放在Documents Folders(中文:我的文档)(C:\Users\username\Documents)下,比如大多数的游戏程序,会存储一些游戏的操作设置、截图、录制视频等各种数据,方便用户备份/编辑这些配置文件,不至于下一次安装得重新配置,那不是烦死人!
    我的文档
  • The Registry
    大量的应用将它们的配置数据存储在注册表中,这些数据可以设定为多用户共享或者是各个用户私有,当然注册表中的settting数据一般比较小。
    注册表
  • The Application's Own Program Folder
    其实,95/98/xp以前的应用程序都把这些数据存放在它的安装文件夹下,这样会多一个config文件夹,这个在后来被指出非常不安全,提倡禁止这种操作,当然还是有不少App是这么写的。
    config文件夹

回到ProgramData

文章的初衷是了解ProgramData文件夹里到底存放了什么东西,为什么占用那么大的空间。
了解了上面的一些文件夹后,讲起来就非常简单了。ProgramData跟APPData基本类似,都是用来存放一些setting文件、缓存文件的,不同的是ProgramData是所有用户共享的,没有私有的文件夹。
在XP时代,存放在C:\Documents and Settings\All Users\Application Data,从Vista开始,将这些应用数据都转移到C:\ProgramData下。在win10中,MicroSoft做了优化,如果你在资源管理器中输入C:\Documents and Settings\All Users\Application Data,系统会自动重定向到C:\ProgramData。

 一般应用程序需要获取的系统权限配置文件也放在C:\ProgramData下。
Roaming
一般最重要的一些文件都会放在C:\Users\username\AppData\Roaming下面,可用来备份重要数据。

最后贴一张WinDirStat的图,非常酷炫!


WinDirStat

推荐阅读更多精彩内容