我想编写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.)))
{
}
我不知道如何访问"扩展"数组中的每个元素。我该如何解决这个问题?
您可以使用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));