任务:复制79881个文件,这些文件分布在791个文件夹下,总共占用空间大小是3.42G
采用5种方法进行复制:
1. 使用资源管理器,复制文件用时大约一个小时
2. 使用程序遍历文件夹,单个文件复制,复制文件用时30分钟。程序采用Python编写。
3. 使用程序遍历文件夹,多线程单个文件复制,测试结果线程越多复制越慢,还是单线程快。程序采用Python编写。
4. 使用Dos命令Xcopy进行复制,复制文件用时29分钟.
5.使用Robocopy发现不仅复制效率大幅度提高,而且robocopy复制的功能也相当强大。
使用robocopy source destin /e 复制文件,此时目标目录destin目录是空的。复制文件用时22分钟。下图的统计是robocopy 输出的。
再执行一遍robocopy source destin /e 命令复制文件,此时目标目录已经有了上次复制的文件。结果用时仅一分钟。
说明robocoy在复制前检查了源文件和目标文件是否一致。如果一致就不复制,这样在源目录和目标目录有相同文件的情况下,复制的效率会大大提高。
此外,robocopy还提供了很多xcopy不具备的功能:
- 可选择多种文件类型复制到目标文件夹
- 可指定在复制时不复制的文件类型
- 可指定复制目录的级次,如只复制两级目录
- 可按文件的修改时间或访问时间进行复制,如只复制三天内修改的文件
- 按文件大小,如只复制大于100K小于1M的文件
- 镜像模式,拷贝时删除在目标文件夹里存在但源文件夹里并没有的文件
- 支持文件移动
- 监控文件夹,一旦文件夹内文件发生变化,自动复制变化的文件
以上功能的具体使用方法可以在命令行中键入 robocopy /? 查看。
robocopy是microsoft在Windows Server 2003 Resource Kit Tools提供的复制工具。robocopy的执行文件可以在Resource Kit Tools的安装目录中找到。
Windows Server 2003 Resource Kit Tools的下载地址 .