正如标题所暗示的,我正在寻找一种方式来获得大量的目录中的文件的属性,但不添加的每个文件的额外的磁盘访问的成本。

例如,如果我的FileInfo对象的名称属性的集合中,那么就没有附加的磁盘访问。然而,如果我得到的LastWriteTimeUtc,则附加的磁盘访问制成。

我的代码:

DirectoryInfo di = new DirectoryInfo(myDir);
FileInfo[] allFiles = di.GetFiles("*.*", SearchOption.TopDirectoryOnly);
foreach (FileInfo fInfo in allFiles)
{
    name = fInfo.Name  //no additional disk access made
    lastMod = fInfo.LastWriteTimeUtc  //further disk access made!!!
}

有谁知道一个方法可以让我得到一个往返这些信息?我本来希望DirectoryInfo.GetFiles()做到这一点,但没有运气。

预先感谢。

有帮助吗?

解决方案 2

所以,这种情况由设计。该LastWriteTimeUtc是延迟加载。所以,没有任何其他写我自己的组件。

其他提示

如果您的真正的关心这个,你应该用用FindFirstFile / GetFileTime等写在C

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top