高效检索多种类型文件
Directory.GetFiles()
方法虽然看似简单,但并不直接支持多种文件类型过滤器。 然而,有几种有效的策略可以克服这个限制。
对于 .NET 4.0 及更高版本,EnumerateFiles()
方法使用 LINQ 的 Where()
子句提供了更好的解决方案:
<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
这可以根据指定的扩展名优雅地过滤枚举文件。
对于较旧的 .NET 版本,可以使用类似的方法:
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories) .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
但是,重要的是要记住 GetFiles()
返回内存中的完整数组。 这可能会导致性能问题和高内存消耗,尤其是在处理大量目录时。 因此,强烈建议使用 EnumerateFiles()
以获得最佳效率。
以上是如何使用Directory.getFiles()或EnumerateFiles()检索多个文件类型?的详细内容。更多信息请关注PHP中文网其他相关文章!