在之前的讲解的C# 获取指定文件夹下指定类型的文件基础上,增加了获取最新修改时间的文件索引的方法,具体代码如下所示。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace C_sharp获取指定文件夹下的图片
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//自定义一个类
public class FileTimeInfo
{
public string FileName; //文件名
public DateTime FileCreateTime; //创建时间
}
//获取最近创建的文件名和创建时间
//如果没有指定类型的文件,返回null
static FileTimeInfo GetLatestFileTimeInfo(string dir, string ext)
{
List<FileTimeInfo> list = new List<FileTimeInfo>();
DirectoryInfo d = new DirectoryInfo(dir);
foreach (FileInfo fi in d.GetFiles())
{
if (fi.Extension.ToUpper() == ext.ToUpper())
{
list.Add(new FileTimeInfo()
{
FileName = fi.FullName,
FileCreateTime = fi.CreationTime
});
}
}
var qry = from x in list
orderby x.FileCreateTime
select x;
return qry.LastOrDefault();
}
private void Form1_Load(object sender, EventArgs e)
{
listBox1.Items.Clear();
}
private void button3_Click(object sender, EventArgs e)
{
DirectoryInfo dir = new DirectoryInfo(@"d:\picture");
FileInfo[] inf = dir.GetFiles();//返回当前目录的文件列表,返回结果数据类型为FileInfo[],即数组
foreach (FileInfo finf in inf)
{
if (finf.Extension.Equals(".jpeg"))
{
//如果扩展名为“.jpeg”
listBox1.Items.Add(finf.FullName);
//在listbox1控件中添加文件的完整目录和文件名
}
}
//使用 GetLatestFileTimeInfo
//获取d:\picture文件中,扩展名为.jpeg的最新文件
FileTimeInfo fi = GetLatestFileTimeInfo(@"d:\picture", ".jpeg");//获取最近创建的格式为“jpeg”的文件
if (fi != null)
{
textBox1.Text = fi.FileName;
}
else
{
MessageBox.Show("空文件");
}
}
}
}