首页 >后端开发 >C++ >Directory.getFiles()可以处理多个文件类型过滤器吗?

Directory.getFiles()可以处理多个文件类型过滤器吗?

Susan Sarandon
Susan Sarandon原创
2025-01-26 19:26:09944浏览

Can Directory.GetFiles() Handle Multiple File Type Filters?

使用Directory.getFiles()

使用多个文件类型过滤器

挑战:

>使用Directory.GetFiles()检索各种类型的文件,提出了一个常见的编程障碍。 该方法本身不直接支持多个文件类型过滤器。

>无效的方法: 这样的尝试无法产生预期的结果:

>解决方案:
<code class="language-csharp">Directory.GetFiles("C:\path", "*.mp3|*.jpg", SearchOption.AllDirectories);
Directory.GetFiles("C:\path", "*.mp3;*.jpg", SearchOption.AllDirectories);</code>
.net 4.0及以后的

用于较旧的.NET版本:类似的基于LINQ的方法有效地工作:

<code class="language-csharp">var files = Directory.EnumerateFiles("C:\path", "*.*", SearchOption.AllDirectories)
                     .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>

对性能和内存进行优化:

>处理大量文件时,性能和内存使用量变得至关重要。 如Christian.K所指出的那样,
<code class="language-csharp">var files = Directory.GetFiles("C:\path", "*.*", SearchOption.AllDirectories)
                     .Where(s => s.EndsWith(".mp3") || s.EndsWith(".jpg"));</code>
的方法可能是记忆密集型的。 Paul Farry强烈建议使用

的建议,以更好地进行内存管理:

以上是Directory.getFiles()可以处理多个文件类型过滤器吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn