本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5816051.html,记录一下学习过程以备后续查用。

    许多文件系统操作实质上是查询,因此非常适合使用LINQ方法。

    一、查询具有指定属性或名称的文件

    此示例演示如何查找指定目录树中具有指定文件扩展名(例如“.txt”)的所有文件,还演示如何根据创建时间返回树中最新或最旧的文件。

C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录
    class Program
    {
        static void Main(string[] args)
        {
            #region LINQ 查询具有指定属性或名称的文件
            //文件路径
            const string path = @"C:\Program Files (x86)\Microsoft Visual Studio\2017\";
            //取文件系统快照
            var dir = new DirectoryInfo(path);
            //该方法假定应用程序在指定路径下的所有文件夹都具有搜索权限
            var files = dir.GetFiles("*.*", SearchOption.AllDirectories);

            //创建查询
            var qurey = from file in files
                            where file.Extension == ".txt"
                            orderby file.Name
                            select file;

            //执行查询
            foreach (var file in qurey)
            {
                Console.WriteLine(file.FullName);
            }

            //创建和执行一个新的查询,通过查询旧文件的创建时间作为一个出发点。
            //Last:选择最后一个,因为是按日期升序,所以最新的是指向最后一个。
            var newestFile = (from file in qurey
                              orderby file.CreationTime
                              select new { file.FullName, file.CreationTime }).Last();

            Console.WriteLine($"\r\nThe newest .txt file is {newestFile.FullName}. Creation time: {newestFile.CreationTime}");
            Console.Read();
            #endregion
        }
    }
View Code

相关文章: