You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#从指定文件夹获取最近上传的多份文件

解决C#获取文件夹中最近上传的多份文件问题

你当前的Directory.GetFiles()方法只会返回目录下所有文件的路径,无法直接筛选最近上传的文件。要实现需求,需要借助FileInfo类获取文件的时间属性(如最后写入时间、创建时间),再排序筛选:

实现步骤

  • 先获取目录下所有文件的FileInfo对象集合,这类对象包含文件的元数据(时间、大小等)
  • 按文件的最后写入时间(上传文件时的写入操作会更新这个时间)或创建时间降序排序
  • 提取排序后前N个文件的路径,转为string[]数组

代码示例

比如要获取最近上传的10个文件:

string uploadDir = Request.PhysicalApplicationPath + "\\Content\\Uploads\\";
// 获取目录下所有文件的FileInfo对象
FileInfo[] fileInfos = new DirectoryInfo(uploadDir).GetFiles();
// 按最后写入时间降序排序,最近的排在最前面
var sortedFiles = fileInfos.OrderByDescending(f => f.LastWriteTime);
// 取前10个文件,提取路径转为string[]
string[] recentFiles = sortedFiles.Take(10).Select(f => f.FullName).ToArray();

注意事项

  • 如果需要更精准的上传时间,建议在上传文件时将时间记录到数据库或文件命名中(比如文件名包含时间戳),避免文件后续被修改导致LastWriteTime变化
  • 若上传的是全新文件,用CreationTime也可以,但如果是覆盖已有文件,CreationTime不会更新,此时LastWriteTime更准确

内容的提问来源于stack exchange,提问作者Nurin Azmir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:15:38