public static void LoadAllMLIFiles() { const String root = @"D:\Games\Hellgate London\data\background\"; List<String> mliFiles = new List<String>(Directory.GetFiles(root, "*.mli", SearchOption.AllDirectories)); foreach (String mliFilePath in mliFiles) { String path = mliFilePath; //path = @"D:\Games\Hellgate London\data\background\city\charactercreate.rom"; //path = "D:\\Games\\Hellgate London\\data\\background\\props\\vehicles\\ambulance_a.rom"; byte[] mliFileBytes = File.ReadAllBytes(path); MLIFile roomDefinitionFile = new MLIFile(); String fileName = path.Replace(@"D:\Games\Hellgate London\data\background\", ""); String xmlPath = path.Replace(MLIFile.Extension, MLIFile.ExtensionDeserialised); Console.WriteLine("Loading: " + fileName); try { roomDefinitionFile.ParseFileBytes(mliFileBytes); byte[] xmlBytes = roomDefinitionFile.ExportAsDocument(); File.WriteAllBytes(xmlPath, xmlBytes); XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(xmlPath); MLIFile mliFile2 = new MLIFile(); mliFile2.ParseXmlDocument(xmlDocument); byte[] bytes = mliFile2.ToByteArray(); if (!mliFileBytes.SequenceEqual(bytes)) { File.WriteAllBytes(path + "2", bytes); } } catch (Exception e) { Console.WriteLine("Failed to load file!\n" + e); continue; } } }