Monday, July 13, 2009

Following program can search files from a folder and its sub folder , program use recurision

C# code
using System;
using System.Collections;
using System.IO;
namespace filesearcher
{
class demo
{
public static void Main(String[] args)
{

Console.WriteLine("Input the search string for search in D: drive");
string inputString=Console.ReadLine();
//string currFile, currDir;

DirectoryInfo theFolder =new DirectoryInfo(@"D:/");

Recur rs =new Recur();
Console.WriteLine("Wait the searching continues........................");
rs.RecurisionSearch(theFolder,inputString);
rs.ShowResult();
}

}

class Recur
{
ArrayList arr_List=new ArrayList();
int check = -1, oneTime=0,fileCount=0,dirCount,foundFiles=0;

public void RecurisionSearch(DirectoryInfo newFolder,string searchString )
{


try{
if(oneTime==0)
{
foreach(FileInfo currentDirFile in newFolder.GetFiles())
{
check = (currentDirFile.Name).IndexOf(searchString);
fileCount=fileCount+1;
if(check ==0)
{
arr_List.Add(currentDirFile.FullName);
check=-1;
fileCount=fileCount+1;
}
}
oneTime=-1;
}



foreach(DirectoryInfo nextFolder in newFolder.GetDirectories())
{


foreach(FileInfo nextFile in nextFolder.GetFiles())
{
check = (nextFile.Name).IndexOf(searchString);
fileCount=fileCount+1;
if(check ==0)
{
arr_List.Add(nextFile.FullName);
foundFiles=foundFiles +1;
//Console.WriteLine(nextFile.FullName);
//Console.WriteLine();
check=-1;
}
dirCount=dirCount+1;
}

RecurisionSearch(nextFolder,searchString);
}

}
catch(Exception e)
{
Console.WriteLine(e);
Console.WriteLine("Search result before overflow");
}



}


public void ShowResult()
{
Console.WriteLine( fileCount +" Files Scanned..........");
Console.WriteLine( dirCount +" Folders Scanned........");
Console.WriteLine( foundFiles +" Match Found...........");
Console.WriteLine();


foreach(string item in arr_List)
{
Console.WriteLine(item);

}
Console.ReadLine();

}


}
}