【发布时间】:2010-12-04 09:13:33
【问题描述】:
这是一个长镜头,但有没有更快的方法来获取多个文件的大小、上次访问时间、上次创建时间等?
我有一个很长的文件路径列表(所以我不需要枚举)并且需要尽快查找这些信息。并行创建 FileInfo 可能无济于事,因为瓶颈应该是磁盘。
不幸的是,NTFS 日志只保留文件名,否则那太好了,我猜操作系统不会在某处存储元信息?
如果存在静态或 Win32 调用(但文件方法只允许我一次获取一条信息)方法,则可能会进行其他优化,该方法获取信息而不是创建一堆 FileInfo 对象
无论如何,很高兴有人知道可能有帮助的东西,不幸的是我必须在这里进行微优化,并且没有“使用数据库”不是一个可行的答案;)
【问题讨论】:
-
查看通过 NuGet 提供的 FluentPath。 weblogs.asp.net/bleroy/archive/2010/11/19/fluentpath-1-0.aspx
-
据我了解,它是一个更好的库,用于处理文件路径和 linq 样式操作,并且与引擎盖下的文件元数据没有太大关系
-
如果没有,您是否可以在应用程序生命周期开始时缓存信息?这将使您可以在 RAM 中使用信息,但如果您有一个长时间运行的应用程序,则不会是最新的..