private static void GenCode(ICodeGen gen) { string strOut = gen.ToCode(); string strOutFile = gen.GetOutFileName(); if (File.Exists(strOutFile)) { StreamReader sr = new StreamReader(strOutFile); string file = sr.ReadToEnd(); sr.Close(); if (file == strOut) { return; } } string dir = Path.GetDirectoryName(strOutFile); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } using (FileStream fs = new FileStream(strOutFile, FileMode.Create)) { byte[] data = new UTF8Encoding().GetBytes(strOut); fs.Write(data, 0, data.Length); fs.SetLength(data.Length); fs.Flush(); fs.Close(); } }