移动不存在的文件

本文关键字:文件 不存在 移动 | 更新日期: 2023-09-27 18:21:29

我需要将文件从本地硬盘复制到外部硬盘。我的想法是,我只想复制目前不存在的文件。我相信有一种更简单的方法可以做到这一点,但这是我首先想到的。

我对如何实现这一目标的看法:
1) 获取C:驱动器上所有文件的列表并写入文本文件
2) 获取L:驱动器上所有文件的列表(备份)并写入文本文件
3) 将C:驱动器文本文件与L:驱动器文本文件进行比较以查找不存在的文件
4) 将不存在的文件的结果写入数组
5) 遍历新创建的阵列并将文件复制到L:drive

有没有更有效/更省时的方法来完成这项任务?

移动不存在的文件

当然,您不想创建列出文件名的文本文件,然后对它们进行比较。这将是低效和笨拙的。这样做的方法是遍历源目录,查找所有文件。在执行过程中,您将为每个文件创建一个匹配的目标路径。在复制文件之前,您需要决定是否复制该文件。如果目标路径中存在文件,请跳过复制。

这方面的一些增强功能可能包括只有在文件存在并且上次修改的日期/时间和文件大小匹配的情况下才跳过复制。等等,我相信你可以想象这方面的变体。

有一件事你可能不想做,那就是先建立一个所有文件的列表,然后开始复制。当您在源目录上迭代时,复制文件可能会更高效。例如,您可以使用Directory.EnumerateFiles以一种有效的方式来执行此操作。

当然,你不需要写一个程序就可以做到这一点。成千上万的人已经存在,其中一些相当有效。