在目录中获取文件的属性时,最大限度地减少了磁盘访问
-
20-09-2019 - |
题
正如标题所暗示的,我正在寻找一种方式来获得大量的目录中的文件的属性,但不添加的每个文件的额外的磁盘访问的成本。
例如,如果我的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
不隶属于 StackOverflow