本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5816051.html,记录一下学习过程以备后续查用。
许多文件系统操作实质上是查询,因此非常适合使用LINQ方法。
一、查询具有指定属性或名称的文件
此示例演示如何查找指定目录树中具有指定文件扩展名(例如“.txt”)的所有文件,还演示如何根据创建时间返回树中最新或最旧的文件。
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 } }