通过NAME

时间:2017-05-17 11:16:16

标签: c# image directory

我目前正在使用以下名称保存文件名:

"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, 基督教

1 个答案:

答案 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]);
            }