我正在更新一个程序,除其他外,它检查给定路径中是否存在文件。这些文件可以位于主路径之外的许多子目录中的任何一个中。以前,我们在整个路径中搜索与给定模式匹配的文件,但部分更新是我们现在有一个单独的数组,其中包含我们期望拥有的文件列表。
鉴于该数组的存在,我正在考虑两种选择:
使用相同的调用
Directory.EnumerateFiles(startingPath, pattern, SearchOption.Alldirectories)
,然后根据我的数组检查结果(可能通过 lambda)。File.Exists()
对数组的每个成员使用多次调用。
在平均情况下,对于任何给定的调用,我们在数组中讨论 3 个或更少的文件。在高端的情况下,我们仍然在谈论不到十几个。大多数处决将涉及数百或数千个调用。
这个程序已经是一个资源消耗者,所以我肯定想在这里使用最有效的方法。哪个更有效率?有没有更好的办法?如果这会带来改进,则可以将文件名的数据结构从数组更改为另一种类型。