1. 程式人生 > >C# 讀取檔案下最新建立的的檔名和時間

C# 讀取檔案下最新建立的的檔名和時間

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;

namespace ReadNewfile
{
    class Program
    {

        //定義一個類包含要使用的欄位
        public class FileTimeInfo
        {
            public string FileName;  //檔名
            public DateTime FileCreateTime; //建立時間
        }
        static void Main(string[] args)
        {
            //使用 GetLatestFileTimeInfo
            //獲取d:\\robot\\images檔案中,副檔名為.png的最新圖片
            FileTimeInfo file = GetLatestFileTimeInfo(@"d:\\robot\\images", ".png");
            if (file != null)
            {
                Console.WriteLine("檔名:{0} 建立時間:{1}", file.FileName, file.FileCreateTime);
            }
            else
            {
                Console.WriteLine("資料夾中沒有指定副檔名的檔案!");
            }
            Console.ReadKey();
        }
        //獲取最近建立的檔名和建立時間
        //如果沒有指定型別的檔案,返回null
        static FileTimeInfo GetLatestFileTimeInfo(string dir, string ext)
        {
            List<FileTimeInfo> list = new List<FileTimeInfo>();
            DirectoryInfo d = new DirectoryInfo(dir);
            foreach (FileInfo file in d.GetFiles())
            {
                if (file.Extension.ToUpper() == ext.ToUpper())
                {
                    list.Add(new FileTimeInfo()
                    {
                        FileName = file.FullName,
                        FileCreateTime = file.CreationTime
                    });
                }
            }
            var f = from x in list
                      orderby x.FileCreateTime
                      select x;
            return f.LastOrDefault();
        }
    }
}

執行效果如下: