0

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

例如,如果我在集合中获取 FileInfo 对象的 Name 属性,则没有额外的磁盘访问。但是,如果我得到 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() 能做到这一点,但没有运气。

提前致谢。

4

2 回答 2

0

如果你真的关心这个,你可能应该使用 FindFirstFile/GetFileTime 等在 C 中编写它。

于 2009-12-21T19:49:45.553 回答
0

因此,这是设计使然。LastWriteTimeUtc 是延迟加载的。所以无事可做其他编写我自己的组件。

于 2011-03-30T15:33:20.780 回答