如何在 Windows 中复制巨大(数百万)的目录树?

如何在 Windows 中复制巨大(数百万)的目录树?

我有一个 NTFS 分区,其中有一个文件夹,里面有超过 500 万个目录。每个目录都包含更多目录和文件。

我正在转向 SSD,并且需要将所有这些数据复制到新驱动器,但遇到了问题。

像这样的目录会导致 Windows 资源管理器崩溃,所以我甚至没有尝试。

我的第一次尝试机器人复制,过去效果很好。但当我尝试复制时,它就是无法启动,即使放了好几天也没用。我认为它在开始复制之前试图索引所有内容。

如何复制此大小的目录?

答案1

我从未见过 robocopy 像这样失败,但如果是因为大小/预索引而失败,那么为什么不编写自己的脚本来进行复制呢?我会用 PERL 编写这个东西,然后根据每个文件进行复制并递归地遍历它。您可以添加检查以查看文件是否已经存在且具有相同的时间戳等。

您还可以查看富文本复制它是多线程的。

答案2

正如其他一些答案所说,我从未见过 RoboCopy 像这样失败 - 据我所知,它不会预先进行任何索引,它只是从第一个目录开始并继续工作。

您有最新版本的 RoboCopy 吗?有一些旧副本流传,可以追溯到旧 NT 时代,它们在处理较大的副本时可能会出现问题。

仅供参考,这是我的安装中的版本标头,用于比较:

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows     ::     Version XP010
-------------------------------------------------------------------------------

答案3

不确定您的分区上还有什么,但您可以使用 Linux Live CD(如 GPartEd)并将整个分区全部复制到新驱动器。作为奖励,如果您想在执行此操作时更改分区大小,GPartEd 也会为您执行此操作。然后删除您不想复制的内容。:)

答案4

您可能需要使用一些多线程的东西,例如丰富副本它允许您指定线程数以及每个线程的挖掘深度。我还没有在 500 万个目录中尝试过它,但我在数千个目录中使用过它,它的效果比 robocopy 好得多。我的技巧包中的另一个复制实用程序是XX复制。它不是那么快,但有一些非常酷的目录克隆选项。由于它是命令行,我认为它甚至不会尝试枚举结构,只是将其泵送过去。

相关内容