Windows显示AppData\Local文件夹容量虚高500GB+,迁移AppData至D盘相关疑问
Windows显示AppData\Local文件夹容量虚高500GB+,迁移AppData至D盘相关疑问
哈喽,针对你遇到的这两个问题,我来给你捋清楚原因和解决方案:
一、AppData容量显示虚高的问题
你说Windows资源管理器显示AppData有558GB,但WinDirStat扫出来实际只有47GB,还排除了压缩的可能,最后定位到一个带「准备归档」属性的文件——这种情况大概率是系统资源管理器的大小计算逻辑bug,或者这个文件是特殊的预留/稀疏文件:
- 有些软件会创建“预留空间文件”(比如游戏预下载占位、虚拟机磁盘、大型软件的缓存预留),这类文件的“标称大小”远大于实际占用的磁盘空间,WinDirStat是直接统计磁盘簇的实际使用量,所以更准确;你可以右键这个文件看属性,对比「大小」和「占用空间」两个数值,如果差距很大,那就是这个原因,实际占用还是以WinDirStat为准,不用管资源管理器的错误显示。
- 「准备归档」属性本身不会导致大小虚高,但可能和这个文件的特殊属性叠加,触发了Windows的计算bug,你可以尝试取消这个属性,看看显示会不会恢复正常。
二、迁移AppData时的mklink相关疑问
很多教程没提复制数据,其实是默认大家知道前置步骤,这里给你明确说清楚:
- 必须先复制数据!
如果你直接创建符号链接却不先转移数据,后续系统的新数据会写到D盘,但旧数据还留在C盘,等于白折腾,还会导致软件找不到旧配置,出现报错、重置设置的问题。 - 正确的迁移步骤应该是这样:
- 先关掉所有会读写AppData的软件(浏览器、Office、聊天工具这些都要关,最好重启后进入安全模式操作,避免文件被占用);
- 把C盘的
C:\Users\<你的用户名>\AppData完整复制到D盘的目标位置(比如D:\MyAppData\<你的用户名>); - 复制完成后,确认数据没问题,就删掉C盘原有的AppData文件夹;
- 以管理员身份打开命令提示符,运行这条命令(把路径换成你自己的):
这里mklink /J "C:\Users\<你的用户名>\AppData" "D:\MyAppData\<你的用户名>"/J是创建目录联结,比普通符号链接更适配系统文件夹,兼容性更好。
- 如果直接跑
mklink不复制数据:
原C盘的AppData数据会留在原地,新产生的数据会写到D盘的目标路径,新旧数据分开,软件大概率会出问题,完全达不到迁移释放C盘空间的目的。
小建议
针对那个搞事的文件,你可以查一下它属于哪个软件:
- 如果是游戏预下载的占位文件,等下载完成后大小显示就正常了;
- 如果是某个软件的临时文件或日志,先备份再删掉,或者取消「准备归档」属性,看看资源管理器的显示会不会恢复。
备注:内容来源于stack exchange,提问作者Luke Vo




