必须用mklink创建目录联接(Junction)将C盘缓存彻底迁至D盘,先关闭占用进程,再用robocopy完整复制,最后删除原文件夹并执行mklink /J命令重建联接,确保软件无感运行。

想把某个软件(比如微信、Chrome或某款设计工具)在C盘生成的全部缓存文件——包括临时下载、GPU着色器、日志、数据库快照等——彻底挪到D盘,同时让软件完全无感、不报错、不重置配置,就得用Windows原生命令mklink创建硬链接(准确说是目录联接Junction),而不是复制粘贴或快捷方式。
确认目标缓存路径并关闭占用程序
先打开资源管理器,地址栏输入%LOCALAPPDATA%回车,进入C:\Users\你的用户名\AppData\Local;再手动展开该软件实际存放缓存的子目录,例如微信是WeChat Files,Chrome是Google\Chrome\User Data\Default\Cache,Adobe Premiere是Adobe\Common\Media Cache Files。必须确保这个路径下没有正在运行的进程在读写——否则下一步robocopy会跳过部分文件,导致链接后数据丢失。
右键任务栏→“任务管理器”→“性能”选项卡→点“打开资源监视器”→在“CPU”页签下搜索该软件名,结束所有相关进程;若为系统级服务(如OneDrive、Teams),需在“服务”页签里右键停止。
用robocopy完整迁移缓存文件夹到D盘
按Win+R,输入cmd,右键“命令提示符”→“以管理员身份运行”。
执行以下命令(将路径中的你的用户名替换成你电脑的实际用户名,软件缓存文件夹名替换成真实名称,如WeChat Files):
robocopy "C:\Users\你的用户名\AppData\Local\软件缓存文件夹名" "D:\CacheBackup\软件缓存文件夹名" /E /COPYALL /XJ /R:1 /W:1
这条命令会递归复制全部子目录和文件,保留所有权、ACL权限、时间戳;/XJ排除交接点(避免把已有符号链接当成普通文件复制出错);/R:1 /W:1控制失败重试次数和等待秒数,防止卡死。复制完成后检查D盘目标路径下文件数量是否与源路径一致——可用PowerShell快速验证:(Get-ChildItem "D:\CacheBackup\软件缓存文件夹名" -Recurse | Measure-Object).Count。
删除原缓存文件夹并重建Junction联接
第一步:在cmd中执行rmdir /S /Q "C:\Users\你的用户名\AppData\Local\软件缓存文件夹名",彻底删除C盘原文件夹(不是剪切!剪切会残留空文件夹,导致mklink失败)。
第二步:立即执行mklink命令建联接:
mklink /J "C:\Users\你的用户名\AppData\Local\软件缓存文件夹名" "D:\CacheBackup\软件缓存文件夹名"
注意:/J参数必须大写,且两个路径都必须用英文双引号包裹,路径末尾不能带反斜杠;如果提示“拒绝访问”,说明上一步rmdir没清干净,或当前cmd未以管理员身份运行;如果提示“系统找不到指定的路径”,请检查D盘目标路径是否存在——【D盘目标文件夹必须已存在且非空】。
成功后,在资源管理器中打开%LOCALAPPDATA%,你会看到该文件夹图标右下角多了一个小箭头标记,双击进去能正常浏览所有文件,软件重启后也会照常读写,就像从未搬过家。

















