Apr 8, 2010

How To Get All Files With Search Parameters From A Directory And Sort Them According To Created Date

There are two methods to get files with specific extension and sort these files according to created date and populate combobox control.

Method 1:
Create A IComparer class .Using Directory.GetFiles() method we can use only one search parameter at a time.

class CompareFileByDate : IComparer{

int IComparer.Compare(Object a, Object b)

{

FileInfo fia = new FileInfo((string)a);

FileInfo fib = new FileInfo((string)b);

DateTime cta = fia.CreationTime;

DateTime ctb = fib.CreationTime;

return DateTime.Compare(cta, ctb);

}

}


Code behind file code

string[] strFile = Directory.GetFiles(@strPath, "*.jpg");

IComparer fileComparer = new CompareFileByDate();

Array.Sort(strFile, fileComparer);

foreach (string fi in strFile)

listDocs.Items.Add(fi.Substring(fi.LastIndexOf("\\") + 1));

Method 2:
Using LINQ we can get file with multiple search parametres.

string[] fns = Directory.GetFiles(@strPath);

listDocs.Items.Clear();

// Order by size.

var sort = from fn in fns

where fn.Contains(".jpg") || fn.Contains(".txt") || fn.Contains(".png")

orderby new FileInfo(fn).CreationTime descending

select fn;

foreach (string obj in sort)

{

listDocs.Items.Add(obj.Substring(obj.LastIndexOf("\\") + 1));

}

0 comments: