迭代列表搜索找到的文件扩展名和目录

问题描述 投票:0回答:1

我有一个循环浏览目录的功能,并且在该目录中的每个文件夹中,它都会搜索最新文件。问题在于文件夹包含不同格式的文件,例如.xlsx和。 csv和我需要将文件扩展名作为该函数的第二个参数传递,因此我无法静态配置它。如何传递列表作为参数并根据其扩展名选择文件?这是我想要做的:

 var extensions = new string[] { ".xlsx", ".csv" };
 var filename = FileSystemService.GetRecentFile(path,  extensions.ToList<string>);
c# linq
1个回答
0
投票

如果您需要具有所需扩展名之一的最新文件,那么这可能是一种解决方案:

public FileInfo GetRecent(string path, params string[] extensions)
{
    List<FileInfo> list = new List<FileInfo>();
    foreach (string ext in extensions)
        list.AddRange(new DirectoryInfo(path).GetFiles("*" + ext).Where(p =>
              p.Extension.Equals(ext,StringComparison.CurrentCultureIgnoreCase))
              .ToArray());
    return list
        .OrderByDescending(i => i.LastWriteTime)
        .FirstOrDefault();
}
© www.soinside.com 2019 - 2024. All rights reserved.