Currently i have to work on some console application that reads all web.cong files in specific folder, for example it read the value of <compliation/> tag in c://inetpub where usually all web sites are placed. There are many ways to do it. Read all web.config as xml and read a node, but i did it with the help of System.IO I pasted the code as follow.
using System;
using System.Collections.Generic;
using System.Text;
using System.Web.Configuration;
using System.IO;
namespace WebConfigCheckerTool
{
class Program
{
//The meath where i read the web.config as a simple text file
//strpath take the phyiscal path in specific folder
//Searchstring contains the value of tag which value is search in tag
private static void SearchNode(string strPath, string Searchstring)
{
try
{
StreamReader srConfig = new StreamReader(strPath);
//i required only name of website or sub folder name where web.config locate
string[] FolderName = strPath.Split(”);
string WebSiteName = FolderName[FolderName.Length – 2].ToString();
//Read whole web.config in string and shift it into lower case so case sensitve will not create problem in searching
string strConfig = srConfig.ReadToEnd().ToLower();
//Searching the index of tag of in string using simple string functions.
int _strMain = strConfig.IndexOf(“<“ + Searchstring + “>”);
if (_strMain == -1)
{
//if not found may be tag is in single line for example <compilation //valu=”debug” /> So i search “< compilation
int _Str = strConfig.IndexOf(@”<“ + Searchstring);
// if not found in as both case <compliation /> or <compliation > //<compliation>
if (_Str == -1)
{
Console.WriteLine(WebSiteName + ” at Not Found”);
}
else
{
// if tag in the form of <compilation value=”bug” /> . Then find index of “>” //closing tag
int _Str2 = strConfig.IndexOf(“>”, _Str);
// Find the total length of string containing taqs value
int _strLength = _Str2 – _Str;
Console.Write(” > “ + WebSiteName + ” “);
//write the value of string form starting taq to toal length +1
Console.WriteLine(strConfig.Substring(_Str, _strLength + 1));
Console.WriteLine(“************************************************”);
}
}
if (_strMain != -1)
{
string LastSrting = (“</” + Searchstring + “>”);
int _strlast = strConfig.IndexOf(LastSrting);
int _Str2 = strConfig.IndexOf(“>”, _strlast);
int _str3 = _Str2 – _strlast;
int _strLength = (_strlast – _strMain) + _str3;
Console.Write(” > “ + WebSiteName + ” “);
Console.WriteLine(strConfig.Substring(_strMain, _strLength + 1));
Console.WriteLine(“************************************************”);
}
}
catch (Exception ex)
{
Console.WriteLine(“Not Found”);
}
}
//The method where i write the read the specific directory
public static void DirSearch(string sDir,string SearchString)
{
try
{
foreach (string d in Directory.GetDirectories(sDir))
{
foreach (string f in Directory.GetFiles(d, “Web.config”))
{
SearchNode(f, SearchString);
}
DirSearch(d,SearchString);
}
}
catch (System.Exception excpt)
{
// Console.WriteLine(excpt.Message);
Console.WriteLine(” Directory dot found or drive name is invalid. “);
}
}
static void Main(string[] args)
{
string Check=“Y”;
do
{
Console.WriteLine(“***************************************************************”);
Console.WriteLine(“* *”);
Console.WriteLine(“* *”);
Console.WriteLine(“* *”);
Console.WriteLine(“* Web.Config Checker Tool *”);
Console.WriteLine(“* *”);
Console.WriteLine(“* *”);
Console.WriteLine(“***************************************************************”);
Console.WriteLine(“”);
Console.WriteLine(“”);
Console.WriteLine(“Please Enter the search Word”);
string Searchstring = Console.ReadLine();
Searchstring = Searchstring.ToLower();
Console.WriteLine(“*****************************************************”);
Console.WriteLine(“Please Enter the search Directory Path”);
string DirectoryPath = Console.ReadLine();
//DirSearch(@”C:Inetpubwwwroot”, Searchstring);
DirSearch(DirectoryPath, Searchstring);
Console.WriteLine(“***************************************************************”);
Console.WriteLine(“* *”);
Console.WriteLine(“* *”);
Console.WriteLine(“* *”);
Console.WriteLine(“* Web.Config Checker Tool *”);
Console.WriteLine(“* *”);
Console.WriteLine(“* *”);
Console.WriteLine(“***************************************************************”);
Console.WriteLine(” Do You Want to Search Again, Please Press ‘Y’ or search again “);
Check = Console.ReadLine();
Console.Clear();
}
while (Check == “Y” || Check == “y”);
}
}
}
try it it will help you