获取文件夹中具有特定扩展名的第一个文件

时间:2018-12-09 14:17:49

标签: c# search filesystems memory-efficient

我的WinForms应用程序使用文件系统保存其数据,我从具有唯一扩展名(由我创建)的文件读取和写入。

我想确保即使重命名或将其移动到子目录,我的应用程序也始终可以找到该文件。

我看到了Directory.GetFiles(…)函数,但它会所有具有扩展名的文件,这意味着即使找到文件,它也将继续搜索。

我的问题是:搜索该文件是否有更有效的方式?

预先感谢

1 个答案:

答案 0 :(得分:2)

是的,有。如您所说,GetFiles将使用搜索过滤器获取所有文件,然后返回。您不想要那样,而是要EnumerateFiles

  

可枚举的全名(包括路径)集合,这些全名(包括路径)由path指定并与指定搜索模式和选项匹配的文件。

因此,您基本上想要:

var file = Directory.EnumerateFiles(yourCurrentParameters)
    .FirstOrDefault();

这样,一旦找到第一个匹配项,LINQ将立即返回。