装完一个软件,打开 C 盘一看,它还是进了 C:\Program Files;有些安装向导的默认路径写的是 C:\Program Files (x86),每装一次都要手动把盘符从 C 改成 D,装三个软件就重复三遍。
单个软件占不了多少空间,但几十个软件叠在系统盘上,余量是一点一点被吃掉的。等 C 盘开始告急再回头处理,工作量已经不是「改一个设置」那个级别了。
决定软件装到哪里的开关不止一处,常见的就这三个:
ProgramFilesDir多数安装包只认其中一处,改错地方等于白改。下面按 Windows 10/11 实测可用的顺序往下做,能省掉反复手动改路径的麻烦。

这条是写给「已经改过设置、软件照样落在 C 盘」的情况。
Win + I 打开设置,进 系统 → 存储 → 高级存储设置 → 保存新内容的地方,把「新的应用将保存到」从 C: 改成 D:,这一项对 Microsoft Store 的打包应用是直接生效的。传统 exe 安装包多数不看这项设置,它的默认路径来自注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 下的 ProgramFilesDir,安装向导里那一行 C:\Program Files 就是从这里读出来的。
所以改了存储设置仍然装到 C 盘,问题多半出在这个安装包压根没读这一项。不同来源的安装包,判断依据不一样,往下走之前先确认自己属于哪种情况。
这一项对商店应用直接生效,传统 exe 安装包不一定听它的。
局限:这一项主要作用于从 Microsoft Store 安装的 MSIX 打包应用,传统安装包多数仍会读到
C:\Program Files。
验证:到商店装一个小应用,看它是否落在 D 盘对应目录。落不到就走方法二、方法三。
不管默认值怎么设,安装时点一下「浏览」或「自定义」,是最稳的习惯。
C:\Program Files\软件名 整段改成 D:\Program Files\软件名。C:\Program Files (x86),注意盘符一起改。关键:末尾的软件名子文件夹要保留,只写
D:\会把几十个文件直接倒在 D 盘根目录。
装完打开 D:\Program Files 看一眼,文件夹在就说明路径改对了。如果这个安装包的路径页是灰的、只给「安装到 C 盘」一种选择,那就退回方法三改默认值,或者装完再做一次整体迁移。
想让安装程序读到的默认值就是 D 盘,只能动这一项。改之前先导出备份。
regedit 回车,弹出的 UAC 窗口选「是」。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion。ProgramFilesDir,双击,把数值数据由 C:\Program Files 改成 D:\Program Files。ProgramFilesDir (x86) 一并按同样方式改,避免 32 位程序仍指向 C 盘。D:\Program Files。备份可以用图形界面点「文件 → 导出」,也可以直接用命令行:
reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion" D:\backup.reg这一步最容易踩的坑是不备份就动手,或者顺手把旁边的键一起改了。只动
ProgramFilesDir和ProgramFilesDir (x86)两个值,别的键不要碰,改完一定要重启验证。改错了双击备份的.reg就能还原。
这条改的是整机默认值,会影响之后装的所有软件。如果只是个别软件想放 D 盘,用方法二更省事,不必动注册表。
已经在 C 盘的软件不会因为改了 ProgramFilesDir 就自己挪窝;装不上时把值改回 C 盘重启即可。
0x80070005(拒绝访问)、0x8007000D 这类错误,先把 ProgramFilesDir 改回 C:\Program Files 并重启。.reg 合并导入,或者手动把值改回 C:\Program Files。
这些报错大多出现在改完注册表之后,按上面的顺序退回去,安装程序就能正常跑起来。
不一样。商店应用听系统「保存新内容的地方」这一项,改成 D 盘后新装的应用就落在 D 盘。exe 安装包多数读注册表里的 ProgramFilesDir,要改默认值得走方法三,或者在安装时手动改路径。
C:\Program Files?那个安装包没读系统这一项。传统 exe 安装程序的默认路径来自注册表 ProgramFilesDir,值写着 C:\Program Files,安装向导里自然就默认 C 盘。改注册表或者装的时候手动改路径都能解决。
ProgramFilesDir 改成 D:\Program Files 后软件装不上、报 0x80070005,怎么恢复?0x80070005 是拒绝访问,多出现在 D 盘目标文件夹不存在或者权限不对的时候。先手动建好 D:\Program Files,右键属性 → 安全,确认 Users 有写入权限。还不行就把 ProgramFilesDir 改回 C:\Program Files,重启后再试。
改默认路径对已经装好的软件无效,它不会自己移动。要么卸载了重装到 D 盘,要么用搬家类工具整包迁移,迁完不用重装也不用重新登录。
ProgramFilesDir 会影响系统更新和已装软件的升级修复吗?多数软件没事,个别程序的升级或者修复安装会去原来的 C 盘目录找文件,找不到就报错。遇到这种情况先把值改回 C:\Program Files 并重启,把新软件单独装到 D 盘就行。
C 盘空间还是紧,就把已经装好的软件先搬走,再顺手清理一遍缓存和残留。软件搬完余量还是不理想,可以再走一遍免费清理c盘的流程,把更新残留和系统缓存一起收掉,比逐个软件挪来挪去省事。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。