我想编写foreach
循环以从外部txt
文件中获取具有指定扩展名的所有文件。例如我有在文件变量:
extensions = "jpg,tif,bmp,png"
或
extensions "jpg,tif"
,我只想获取此文件。
到目前为止,我有类似的东西,但我不知道如何继续。
extensions = Extensions.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string sourceFile in Directory.GetFiles(SourcePath, "*.*", SearchOption.AllDirectories).Where(s => s.EndsWith(extensions.)))
{
}
我不知道如何到达“扩展”数组中的每个元素。我该怎么解决?
答案 0 :(得分:2)
您可以使用Enumerable.Contains
和System.IO.Path.GetExtension
:
string[] extensions = {".jpg",".tif",".bmp",".png" };
var files = Directory.EnumerateFiles(SourcePath, "*.*", SearchOption.AllDirectories)
.Where(s => extensions.Contains(Path.GetExtension(s), StringComparer.InvariantCultureIgnoreCase));