仅迭代新添加的文件

时间:2016-08-09 11:59:20

标签: c# indexing

我一直困在我不想一直迭代所有文件以查看我是否已将其编入索引。我已经实施了以下建议的解决方案。

  1. 第一次迭代所有文件。在某处存储当前日期/时间。 下次检查创建日期>的所有文件最后存储的日期。
  2. 使用扩展名' .done'在同一路径上创建文件索引后。下一个 时间只有那些文件将被编入索引,其中' .done'文件将是 丢失。
  3. 索引后将索引文件移动到Archived目录。
  4. 不建议使用第3种解决方案,因为我无法更改目录结构,因为它被许多其他人使用。

    是否有其他更好的解决方案只能获取上次迭代中未编入索引/访问过的文件?

1 个答案:

答案 0 :(得分:0)

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

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