在一个查询中按多个周长过滤列表

时间:2013-11-17 15:13:35

标签: c#

我想查询一个目录,我只想从目录文件中收集哪些是基于文本的文件。 (CSV,TXT,INI)

我打算忽略的其他文件类型。

我正在尝试使用Directory.GetFiles在一个查询中执行此操作,如果我一次查询一种文件类型,则可以查找。我想在一个查询中执行此操作。

这适用于仅接受TXT文件:

var sourceFolderContents = Directory.GetFiles(folder).ToList().Where(x => x.Split('.').Last().ToUpper().Equals("TXT"));

但是如何向此添加AND'CSV'和'INI',以便sourceFolderContents中包含CSV,TXT和INI文件列表?

1 个答案:

答案 0 :(得分:1)

var extensions = new string[]{".TXT",".CSV",".INI"};
var sourceFolderContents = Directory.GetFiles(folder)
        .Where(f=>extensions.Contains(Path.GetExtension(f).ToUpper()))
        .ToList();

注意:使用GetFiles时,您应该考虑使用SetAccessControl设置权限,否则在某些情况下可能会有一些未经授权或访问被拒绝的异常。