Friday, April 24, 2009

Search a types of file within the Directory with recursive in C#

Hi Guys,

Following code support to search types file with in the Directory including sub directories also.

public class FileSearch
{
ArrayList _extensions;
bool _recursive;
public ArrayList SearchExtensions
{
get { return _extensions; }
}
public bool Recursive
{
get { return _recursive; }
set { _recursive = value; }
}
public FileSearch()
{
_extensions = ArrayList.Synchronized(new ArrayList());
_recursive = true;
}
public FileInfo[] Search(string path)
{
DirectoryInfo root = new DirectoryInfo(path);
ArrayList subFiles = new ArrayList();
foreach (FileInfo file in root.GetFiles())
{
if (_extensions.Contains(file.Extension))
{
subFiles.Add(file);
}
}
if (_recursive)
{
foreach (DirectoryInfo directory in root.GetDirectories())
{
subFiles.AddRange(Search(directory.FullName));
}
}
return (FileInfo[])subFiles.ToArray(typeof(FileInfo));
}
}

How to Use:

FileSearch fileser = new FileSearch();
fileser.Recursive = true;
fileser.SearchExtensions.Add(".rar");
FileInfo[] dirRar = fileser.Search("D:\\test");


Thank you
Keep It Watch

No comments:

Post a Comment