Below is a little C# program that I wrote which searches all files within a directory for a custom string. Could come in handy nah?
If you have any comments regarding the code, feel free to comment.
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace MyProgram
{
class Program
{
static int results = 0;
static int dirs_searched = 1;
static int files_searched = 0;
static void SearchForString(string _dir, string searchstring)
{
try
{
DirectoryInfo dir = new DirectoryInfo(_dir);
string[] _files = Directory.GetFiles(_dir);
int counter=0;
foreach (string file in _files)
{
files_searched++;
if ((counter = ReadIt(file, searchstring)) > 0)
{
results += counter;
Console.WriteLine("Found \"{0}\" in {1} - {2} times.", searchstring, file, counter);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
try
{
string[] _dirlist = Directory.GetDirectories(_dir);
foreach (string subdir in _dirlist)
{
dirs_searched++;
SearchForString(subdir, searchstring);
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
static int ReadIt(string file, string searchstring)
{
string line = "";
int counter = 0;
try
{
StreamReader sr = File.OpenText(file);
while (!sr.EndOfStream)
{
line = sr.ReadLine();
if (line.Contains(searchstring))
counter++;
}
return counter;
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
return 0;
}
static void Main(string[] args)
{
string searchstring="";
string dirstart = "";
Console.WriteLine("String searcher.\n");
Console.Write("Enter string to search for: ");
searchstring = Console.ReadLine();
Console.Write("Enter directory to search: ");
dirstart = Console.ReadLine();
try
{
if (Directory.Exists(dirstart))
{
Console.WriteLine("\nSearching {0} for \'{1}\'", dirstart, searchstring);
SearchForString(dirstart, searchstring);
Console.WriteLine("\n================\nFound {0} results.", results);
Console.WriteLine("\n{0} directorie(s)", dirs_searched);
Console.WriteLine("\n{0} files.", files_searched);
Console.WriteLine("\n================");
}
else
{
Console.WriteLine("Path could not be found.");
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
}
Compiled version can be found here: Download String Searcher
- Imraan Moosa