我有一个循环浏览目录的功能,并且在该目录中的每个文件夹中,它都会搜索最新文件。问题在于文件夹包含不同格式的文件,例如.xlsx和。 csv和我需要将文件扩展名作为该函数的第二个参数传递,因此我无法静态配置它。如何传递列表作为参数并根据其扩展名选择文件?这是我想要做的:
var extensions = new string[] { ".xlsx", ".csv" };
var filename = FileSystemService.GetRecentFile(path, extensions.ToList<string>);
如果您需要具有所需扩展名之一的最新文件,那么这可能是一种解决方案:
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();
}