我希望从目录及其扩展中获取最新的文件。
目录中可能存在的文件的示例(及其创建日期):
2009-10-20T07:00:00.000 filename1.mp4
2009-10-20T07:00:01.000 filename1_0.mp4
2009-10-20T07:00:02.000 filename1_1.mp4
2009-10-20T07:00:00.000 filename1.wmv
2009-10-20T07:10:00.000 filename2.mp4
2009-10-20T07:10:00.000 filename2.wmv
请注意,mp4格式的名为“filename1”的文件有3个版本,按顺序编号。我正在寻找名为'filename1'的文件,以获得以下结果(无特定顺序):
filename1_1.mp4
filename1.wmv
因为这些文件是最新创建的两个扩展名,但两者都有文件名'filename1',我希望。
答案 0 :(得分:3)
foreach (FileInfo fi in GetLatestFiles("c:\\test\\", "filename1"))
{
Console.WriteLine(fi.Name);
}
// ...
public static IEnumerable<FileInfo> GetLatestFiles(string path, string baseName)
{
return new DirectoryInfo(path)
.GetFiles(baseName + "*.*")
.GroupBy(f => f.Extension)
.Select(g => g.OrderByDescending(f => f.LastWriteTime).First());
}
答案 1 :(得分:0)
var files = Directory.GetFiles("dir name").Select(str => new FileInfo(str))
.Where(file => file.Name.StartsWith("filename1"))
.Where(file => file.LastWriteTime > DateTime.Now.AddDays(-1));
foreach(var file in files)
{
Console.Write(file.Extension);
}
您需要将“filename1”和DateTime.Now替换为您需要的内容