۱۳۸۸/۰۵/۳۰

استفاده از LINQ جهت جستجوي فايل‌ها


يكي ديگر از كاربردهاي anonymous types ، امكان استفاده از قابليت‌هاي LINQ براي جستجوي فايل‌ها و پوشه‌ها است.
مثال:

using System;
using System.Linq;
using System.IO;

namespace LINQtoDir
{
class Program
{
static void Main(string[] args)
{
var query = from f in new DirectoryInfo(@"C:\Documents and Settings\vahid\My Documents\My Pictures")
.GetFiles("*.*", SearchOption.AllDirectories)
where f.Extension.ToLower() == ".png" || f.Extension.ToLower() == ".jpg"
orderby f.LastAccessTime
select new
{
DateLastModified = f.LastWriteTime,
Extension = f.Extension,
Size = f.Length,
FileName = f.Name
};

foreach (var file in query)
Console.WriteLine(file.FileName);

Console.WriteLine("Press a key...");
Console.ReadKey();
}
}
}

در اين مثال توسط كوئري نوشته شده، تمامي تصاوير jpg و يا png موجود در پوشه my pictures يافت شده و سپس بر اساس LastAccessTime مرتب مي‌شوند. در آخر با استفاده از anonymous types ، يك شيء IEnumerable از خواص مورد نظر فايل‌هاي يافت شده، بازگشت داده مي‌شود. اكنون هر استفاده‌ي دلخواهي را مي‌توان از اين شيء انجام داد.