TouchFish.FileMove:节省你的 C 盘空间

· · 科技·工程

遇到过以下问题?

传统的解决方式是重新安装软件到其他盘(重新下载、重新配置,太麻烦!)。

有没有一种方式,能让你轻松地把文件夹移动到其他位置,同时让所有程序都以为文件还在原来的位置?

可以使用 TouchFish.FileMove

GitHub :ILoveScratch2/TouchFish.FileMove

什么是 TouchFish.FileMove?

TouchFish.FileMove 是一个轻量级的 Windows 文件移动工具,它能帮你将文件夹从一个位置搬到其他位置,同时在原位置自动创建符号链接,让所有软件无感知地继续工作。使用 C++ 编写。

特点:

  1. 图形化操作:不需要记住复杂的命令,点几下鼠标就能完成
  2. 自动符号链接:移动后在原位置自动创建符号链接,程序访问时自动重定向
  3. 实时进度显示:显示文件大小、移动速度和剩余时间
  4. 智能回滚:如果操作失败,自动回滚到原始状态

工作原理

符号链接

当程序访问符号链接时,Windows 会自动把它重定向到真正的文件位置(类似于完全无感的快捷方式)。

假设你有一个安装在 C:\Program Files\LG,现在想把它移到 D:\LG

  1. 移动文件:把 C:\Program Files\LG 所有内容移到 D:\LG
  2. 创建符号链接:在 C:\Program Files 下创建一个名为 LG 的符号链接,指向 D:\LG

现在:

TouchFish.FileMove 的流程

点击“开始移动”后,程序会执行以下步骤:

  1. 验证路径:检查源路径是否存在,目标路径是否合法
  2. 计算大小:递归遍历源文件夹,计算总大小
  3. 判断策略
    • 如果在同一驱动器(如都在 C 盘)→ 直接使用 Windows 的 MoveFile API,在一个驱动器内移动文件会很快(真的很快)
    • 如果跨驱动器(如 C 盘到 D 盘)→ 先复制再删除(慢但稳定)
  4. 执行移动:在新线程中移动文件,主线程更新进度条
  5. 创建符号链接:使用 CreateSymbolicLink API 在原位置创建链接
  6. 错误处理:如果任何步骤失败,自动回滚到原始状态

注意事项

不建议移动系统关键目录

系统关键目录不要移动,可能导致系统炸掉,比如:

需要移动具体的某个软件,不要移动系统级目录

可以安全移动的目录

普通的目录可以安全移动,比如:

需要管理员权限

创建符号链接必须以管理员身份运行,否则无法创建符号链接。会自动申请管理员权限的。

不支持 FAT32

FAT32 文件系统不支持符号链接,必须使用 NTFS 格式的磁盘。

移动位置变化

如果盘符变了(比如 D 盘变成 E 盘),符号链接会失效,程序会找不到文件。

如果被移动之后的新位置被删除了,也是不能访问到的。

相关链接

最后,如果 TouchFish.FileMove 帮到了你,给个 Star 吧

其实我又双叒叕是来讨 Star 的