using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace AnsiToUTF8Converter { class Converter { static Encoding sourceEncoding = Encoding.GetEncoding(1252); static Encoding destinationEncoding = Encoding.UTF8; static string[] extensions = new string[] { ".tpl", ".htm" }; static void Encode(string filename) { StreamReader reader = new StreamReader(filename, sourceEncoding); string content = reader.ReadToEnd(); reader.Close(); StreamWriter writer = new StreamWriter(filename, false, destinationEncoding); writer.Write(content); writer.Flush(); reader.Close(); } static void RecursiveReader(string path) { DirectoryInfo info = new DirectoryInfo(path); DirectoryInfo[] subDirs = info.GetDirectories(); FileInfo[] files = info.GetFiles(); bool ouputDirectoryName = true; foreach (FileInfo file in files) { foreach (string extension in extensions) { if (file.Extension.ToLower().Equals(extension)) { Encode(file.FullName); if (ouputDirectoryName) { Console.WriteLine("At least one file was converted in path: {0}.", path); ouputDirectoryName = false; } continue; } } } foreach (DirectoryInfo dir in subDirs) { RecursiveReader(dir.FullName); } } static void Main(string[] args) { RecursiveReader(@"C:\ToConvert\"); Console.ReadLine(); } } }