只迭代新添加的文件

本文关键字:文件 添加 迭代 新添加 | 更新日期: 2023-09-27 18:01:33

我卡住了我不想迭代所有文件,看看我是否已经索引了这些文件。我有以下建议的解决方案,并实施了第一个。

  1. 第一次迭代所有文件。将当前日期/时间存储在某个地方。下次检查所有创建日期>最后存储日期的文件。
  2. 在相同路径上创建扩展名为'的文件。完成后索引。下一个只有那些文件才会被索引。"完成"文件将是失踪。
  3. 索引完成后将索引文件移动到存档目录

第三个解决方案不推荐,因为我无法更改目录结构,因为它被许多其他人使用。

是否有其他更好的解决方案来获取那些在上次迭代中没有索引/访问的文件?

只迭代新添加的文件

首先处理最新的文件,直到文件已经完成,或者创建时间少于上一次目录扫描的时间:

DirectoryInfo DirInfo = new DirectoryInfo(@"c:'");
foreach (FileInfo fi in DirInfo.GetFiles( ...)
                          .OrderByDescending(p => p.CreationTime)
                          .Where(p => p.CreationTime > time-of-last-scan)
                          .ToList())
{
  ...
}