挑战:
>使用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版本:
<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中文网其他相关文章!