在 Windows 系统中,全局的(对于所有用户的)程序文件一般存放在C:\Program Files
目录(64 位程序)或者C:\Program Files (x86)
目录(32 位程序)下。这两个目录也有对应的环境变量,分别是%PROGRAMFILES%
和%PROGRAMFILES(X86)%
。
这两个目录下的文件受到系统保护,除非有管理员权限,否则只能读取,不能修改。这就是为什么软件在全局安装的时候一定会请求管理员权限。
程序运行过程中,有时候会需要创建或修改一些文件,比如配置文件或者临时文件等等,这种情况下,如果将这些文件放在%PROGRAMFILES%
下就会很不方便。用户肯定不希望每次运行程序都要授予管理员权限。所以这些文件一般会放在用户目录下,比如C:\Users\<username>\AppData\Local
目录。这个目录也有对应的环境变量,是%LOCALAPPDATA%
。
(除了%LOCALAPPDATA%
,还有一个%APPDATA%
环境变量,这个变量指向的是C:\Users\<username>\AppData\Roaming
目录,根据微软文档,%APPDATA%
中的文件会同步到相同账户的远程主机上。我感觉这个功能应该 99% 的人用不到,所以我一般会用%LOCALAPPDATA%
,感觉安全一点。)
当然,%LOCALAPPDATA%
目录也可以用来安装软件,只不过其中的软件只对当前用户可见,这样一来安装、卸载的时候就不需要管理员权限了。