根据LastWriteTime和文件计数从磁盘上读取文件

时间:2012-03-06 11:47:55

标签: c# file datetime

我需要根据以下两个条件读取磁盘文件

  1. 读取最近的文件,即必须比用户提供的DateTime对象更新
  2. 因为我正在批量处理这些文件。我每个批量限制为100个文件。
  3. 因此,我需要确保我读过的最后100个文件是最新的,每当我需要获得下一批100个文件名时,我必须能够从第101个文件开始,因为DateTime因子不能是碎。

    LINQ会很好用!

    由于

1 个答案:

答案 0 :(得分:1)

如果我理解你需要什么,使用.NET 4.0你可以这样写:

Directory.EnumerateFiles(directory, searchPattern)
 .Select(path => new FileInfo(path))
 .Where(fileInfo => fileInfo.LastWriteTime >= date)
 .OrderBy(fileInfo => fileInfo.LastWriteTime)
 .Take(100);

如果您使用的是以前版本的框架,则可以使用Directory.GetFiles(),但必须检查其性能,因为它会读取 FULL 目录列表条目。