目录迁移工具

0
回复
74
查看
[ 复制链接 ]

2

主题

0

回帖

15

积分

新手上路

积分
15
2025-10-23 11:50:55 显示全部楼层 阅读模式
本帖最后由 zwy 于 2025-11-1 23:02 编辑

一个使用符号链接透明迁移大型目录的 Windows 工具

功能特性
  • ✅ 透明迁移: 使用目录符号链接 (mklink /D),应用程序无感知
  • ✅ 可靠复制: 使用 robocopy 镜像复制,保留权限、时间戳和属性
  • ✅ 实时进度: 显示复制进度、速度、预计剩余时间
  • ✅ 安全回滚: 出错自动回滚至原始状态
  • ✅ 路径验证: 阻止迁移系统关键目录
  • ✅ 磁盘检查: 验证目标磁盘空间是否充足
  • ✅ 大文件统计: 统计超过阈值的大文件数量

系统要求
  • Windows 10/11 (x64)
  • .NET 8.0 Desktop Runtime(仅框架依赖版本需要)
  • 管理员权限
  • 目标推荐 NTFS 文件系统

迁移流程
  • 路径验证: 检查源/目标路径合法性,验证权限
  • 扫描分析: 统计文件数量、总大小、大文件数
  • 复制文件: 使用 robocopy 多线程镜像复制
  • 创建链接: 将源目录重命名为备份,创建符号链接指向目标
  • 健康检查: 验证符号链接可访问性
  • 清理备份: 验证通过后删除备份目录


回滚策略
  • 任何步骤失败自动回滚
  • 删除已创建的符号链接
  • 还原原始目录

软件框架
  • .NET 8.0 平台
  • WPF 框架(支持单文件自包含发布)
  • MVVM 架构 (CommunityToolkit.Mvvm)
  • 核心库分离 (MigrationCore) 便于复用

注意事项
  • 管理员权限: 建议以管理员身份运行
  • NTFS 文件系统: 目标路径建议使用 NTFS,以保留完整文件属性
  • 磁盘空间: 确保目标磁盘有足够空间(需源目录大小 + 10% 余量)

示例场景

场景 1: 迁移游戏目录
将 C 盘的大型游戏迁移到 D 盘,游戏启动器仍能正常识别路径

场景 2: 迁移用户数据
将 C:\Users\YourName\Documents 迁移到更大的磁盘

场景 3: 迁移开发环境缓存
将 node_modules、.gradle 等大型缓存目录迁移到其他磁盘

场景 4: 迁移NovaStudio模型目录
NovaStudio\comfyui\models 、NovaStudio\comfyui\output、C:\LingLong\.llmodels 等大文件目录迁移到其他磁盘,比如D盘



更新:V1.1.1 - 2025-11-01
新增一键迁移模式(新功能)✨
  • 适配玲珑星核AI应用目录
  • 迁移状态管理(未迁移/已迁移 Tabs)
  • 完整的还原功能
  • 中断与恢复策略
  • 标记文件支持
还原模式(新功能)✨
当您选择一个符号链接目录作为源目录时,应用会自动进入还原模式:
  • 选择源目录:选择要还原的符号链接目录
    • 应用会自动检测这是一个符号链接
    • 选择切换到还原模式
    • 自动读取并填充目标路径
  • 开始扫描:分析要还原的数据
  • 开始还原:执行还原操作
  • 选择清理方式:还原成功后,选择是否删除目标目录数据
bug修复
  • 迁移大文件场景,取消迁移后,文件依然在复制的问题


更新V1.1.2 测试版本,新增修复模式。
  • 触发条件

    • 手动模式:选择源路径和目标路径后,如果满足修复条件会显示"修复链接"按钮
    修复流程
    • 验证路径: 检查目标目录是否存在,路径关系是否合法
    • 处理源路径:
      • 源不存在 → 直接创建符号链接
      • 源是符号链接 → 检查指向,错误则重建
      • 源是空目录 → 删除后创建符号链接
      • 源是非空目录 → 备份后创建符号链接,并创建 .xinghe-repair.info 标记文件
    • 验证链接: 确认符号链接创建成功且可访问
    • 清理备份: GUI 模式会询问是否将备份移入回收站(可恢复)

    点击下载v1.1.2-beta








收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则