我的WinForms应用程序使用文件系统保存其数据,我从具有唯一扩展名(由我创建)的文件读取和写入。
我想确保即使重命名或将其移动到子目录,我的应用程序也始终可以找到该文件。
我看到了Directory.GetFiles(…)
函数,但它会所有具有扩展名的文件,这意味着即使找到文件,它也将继续搜索。
我的问题是:搜索该文件是否有更有效的方式?
预先感谢
答案 0 :(得分:2)
是的,有。如您所说,GetFiles
将使用搜索过滤器获取所有文件,然后返回。您不想要那样,而是要EnumerateFiles
:
可枚举的全名(包括路径)集合,这些全名(包括路径)由path指定并与指定搜索模式和选项匹配的文件。
因此,您基本上想要:
var file = Directory.EnumerateFiles(yourCurrentParameters)
.FirstOrDefault();
这样,一旦找到第一个匹配项,LINQ将立即返回。