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();
}
}
}