C盘又双叒叕红了?磁盘迁移小工具安利
前言
现在这年头,AI 工具一堆,开发环境一堆,光是 VSCode、Node、Python、Docker 这些基本配置工具,再加上各种 AI 客户端的缓存,C 盘空间分分钟就见底了。
公司电脑就那么大点存储,C 盘一红,电脑卡得想打人,严重影响开发效率。
第一反应:删文件。但翻了一圈,AppData、Local、各种缓存目录,好像都有用,不敢删。
第二反应:移到 D 盘。但直接移动的话,很多软件就不认路径了,得重新配置,麻烦。
后来发现了个神器:符号链接(Symbolic Link)。
简单说就是:文件夹搬到 D 盘,但在 C 盘原位置留个"快捷方式",系统会自动把访问请求转到 D 盘。对软件来说,路径没变,完全无感。
道理懂了,但每次手动操作太麻烦。于是写了个小工具。(使用前可以先用其他磁盘工具如WinDirStat先看看哪些是大头文件)
工具长啥样
启动后自动打开,界面长这样:
┌─────────────────────────────────────────┐
│ 磁盘文件夹迁移工具 │
├─────────────────────────────────────────┤
│ 源路径: [C:\Users\xxx\AppData\Local] │
│ 目标: [D:\] │
│ 实际迁移目标: D:\Local ← 自动补全 │
│ │
│ [🚀 开始迁移] │
│ │
│ ████████████████░░░░░ 75.3% │
│ │
│ 日志输出: │
│ ───────────────────────────── │
│ ✅ 迁移前检查通过 │
│ 📁 正在复制: Local\Temp\xxx.log │
│ ... │
└─────────────────────────────────────────┘
怎么用
最简单的方式:双击 run_as_admin.bat,会自动以管理员权限启动 Web 版,浏览器自动打开。
也可以手动运行:
cd src
python server.py --enhanced
浏览器会自动打开 http://127.0.0.1:8080。
操作步骤
- 输入要迁移的文件夹路径(比如
C:\Users\Administrator\AppData\Local) - 输入目标路径(比如
D:\MigratedFolders) - 点"开始迁移"
- 等着就行,工具会自动:
- 复制文件夹到目标位置
- 在原位置创建符号链接
- 如果符号链接失败,自动回滚
技术实现
符号链接创建
import os
# 把 source 文件夹移到 target,然后在 source 原位置创建链接
os.symlink(target, source)
就这么简单。但有几个坑:
坑1:需要管理员权限
Windows默认只有管理员才能创建符号链接。普通用户会报 privilege 错误。
所以工具启动时会检查权限,不够就自动请求提权。
坑2:不能跨盘符直接移动
shutil.move() 在跨盘符时会变成复制+删除,没有进度反馈。
当前实现:先遍历文件夹算总大小,然后一个个文件复制,实时更新进度。
def copy_folder_with_progress(source, target):
total_size = get_folder_size(source)
copied_size = 0
for dirpath, dirnames, filenames in os.walk(source):
for filename in filenames:
src_file = os.path.join(dirpath, filename)
# ... 复制文件 ...
copied_size += os.path.getsize(src_file)
percent = copied_size / total_size * 100
# 更新进度条
坑3:符号链接失败要回滚
如果符号链接创建失败(比如权限问题),已经复制过去的文件就尴尬了。
所以加了回滚逻辑:失败就自动把文件移回来,保证不会丢数据。
try:
os.symlink(target, source)
except OSError:
# 符号链接失败,回滚
shutil.move(target, source)
一些细节细节
路径自动补全:
输入目标路径时,如果填的是盘符根目录(如 E:\),界面会自动提示实际迁移目标(如 E:\test),不用每次都打完整路径。
进度显示:
大文件夹复制时能看到实时进度和当前正在复制的文件,不用干等着猜。
日志输出:
每一步操作都有日志,出问题能快速定位。
适合迁移哪些文件夹
亲测可以迁移的:
AppData\Local(各种缓存)AppData\Roaming(部分软件数据)Downloads(下载文件夹)Documents(文档)Pictures、Videos(媒体文件)- 各种开发工具的缓存目录
不太建议迁移的:
- Windows系统文件夹(别动)
- 正在运行的程序目录(会报错)
- 路径很短的文件夹(比如
C:\Temp,意义不大)## 写在最后最后
这个工具为初始版本,功能较单一。如果大家觉得有用,可以提issue或者PR,一起完善。
比如可以加的功能:
- 多文件夹批量迁移
- 迁移前后空间对比图
- 预览模式(先看看会搬哪些文件)
- 支持排除某些文件/文件夹
有问题欢迎评论区交流。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)