首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按名称获取目录最后X文件的文件名

按名称获取目录最后X文件的文件名
EN

Stack Overflow用户
提问于 2017-05-17 11:16:15
回答 1查看 50关注 0票数 0

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

代码语言:javascript
运行
复制
"Image_from" +  DateTime.Now.ToString("yyyy_MM_dd-HH_mm_ss") + ".jpg",

为了做一些统计,我想得到最后一个X(例如5)文件的文件名。我知道我可以根据最后一次编写/编辑的方法对它们进行排序:

代码语言:javascript
运行
复制
var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
             .OrderByDescending(f => f.LastWriteTime)
             .First();

但是如果有人更改文件并再次保存它,我将不会得到“最新创建”只是最新的编辑.我想确保我总是得到最后的文件创建智慧的特定目录。

有人能帮我吗?/有办法解决这个问题吗?

提前感谢!

你好,克里斯蒂安

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-17 11:24:42

如果包含日期,请使用文件名

代码语言:javascript
运行
复制
"Image_from" +  DateTime.Now.ToString("yyyy_MM_dd-HH_mm_ss") + ".jpg"

就像这样:

代码语言:javascript
运行
复制
var directory = new DirectoryInfo("C:\\MyDirectory");
var myFile = directory.GetFiles()
             .OrderByDescending(f => f.Name)
             .First();

编辑:

要只获取.csv文件和前5个创建文件:

代码语言:javascript
运行
复制
            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]);
            }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44023306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档