c# - Directory.Getfiles() 多个搜索模式过滤器如何 c#

标签 c# directory getfiles

<分区>

Possible Duplicate:
Can you call Directory.GetFiles() with multiple filters?

我有一个字符串数组:

string[] pattern={"*.jpg","*.txt","*.asp","*.css","*.cs",.....};

这个字符串模式

string[] dizin = Directory.GetFiles("c:\veri",pattern);

dizin变量C:\veri目录下的文件如何赋值?

最佳答案

你可以用这样的东西

string[] extensions = { "jpg", "txt", "asp", "css", "cs", "xml" };

string[] dizin = Directory.GetFiles(@"c:\s\sent", "*.*")
    .Where(f => extensions.Contains(f.Split('.').Last().ToLower())).ToArray();

或者使用 FileInfo.ExtensionString.Split 更安全但可能更慢

string[] extensions = { ".jpg", ".txt", ".asp", ".css", ".cs", ".xml" };

string[] dizin = Directory.GetFiles(@"c:\s\sent", "*.*")
    .Where(f => extensions.Contains(new FileInfo(f).Extension.ToLower())).ToArray();

或者如 juharr 所述,您还可以使用 System.IO.Path.GetExtension

string[] extensions = { ".jpg", ".txt", ".asp", ".css", ".cs", ".xml" };

string[] dizin = Directory.GetFiles(@"c:\s\sent", "*.*")
    .Where(f => extensions.Contains(System.IO.Path.GetExtension(f).ToLower())).ToArray();

关于c# - Directory.Getfiles() 多个搜索模式过滤器如何 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14330295/

相关文章:

c# - 在 C# 中一个接一个地启动进程

c# - 扩展 Entity Framework 类

iPhone SDK : subFolders inside the main bundle

java - 为什么这个单元测试说我的目录不存在,而它却存在?

f# - 在F#: How do I obtain a list of the filenames in a directory; expected unit have string中

c# - 使用 LINQ 创建类似面包屑的层次结构

c# - LINQ OrderBy 异常

perl - 如何使用 bash 或 Perl 脚本遍历目录树?

c# - 为什么这个 C# 代码这么慢?优化目录/文件搜索和添加所需

c# - 如何避免未授权访问异常?