我目前正在使用以下名称保存文件名:
"Image_from" + DateTime.Now.ToString("yyyy_MM_dd-HH_mm_ss") + ".jpg",
为了做一些统计,我想得到最后一个X(例如5个)文件的文件名。我知道我可以通过最后编写/编辑来对它们进行排序:
var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
.OrderByDescending(f => f.LastWriteTime)
.First();
但如果有人更改了文件并再次保存,我将不会获得最新编辑的“最新创建”... 我想确保我总是得到特定目录的最后一个文件创建。
任何人都可以帮助我吗? /有想法如何解决这个问题?
提前致谢!
Greeetings, 基督教
答案 0 :(得分:1)
使用文件名称,如果包含日期
"Image_from" + DateTime.Now.ToString("yyyy_MM_dd-HH_mm_ss") + ".jpg"
像那样:
var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
.OrderByDescending(f => f.Name)
.First();
编辑:
仅获取.csv文件和前5个创建文件:
var directory = new DirectoryInfo("C:\\MyDirectory");
List<FileInfo> files = directory.GetFiles("*.csv").ToList<FileInfo>();
files.Sort((x, y) => x.Name.CompareTo(y.Name));
List<FileInfo> top5 = new List<FileInfo>();
for (int i = 0; i < 5 && i < files.Count; i++)
{
top5.Add(files[i]);
}