} //method GetMtarType ends static void ReadArchive <T>(string path) where T : ArchiveFile, new() { string directory = Path.GetDirectoryName(path); string nameWithoutExtension = Path.GetFileNameWithoutExtension(path); string extension = Path.GetExtension(path).Substring(1); string outputPath = directory + @"\" + nameWithoutExtension + "_" + extension + @"\"; string xmlOutputPath = path + ".xml"; using (FileStream input = new FileStream(path, FileMode.Open)) using (FileStream xmlOutput = new FileStream(xmlOutputPath, FileMode.Create)) { T file = new T(); file.numberNames = numberNames; file.name = Path.GetFileName(path); file.Read(input); file.Export(input, outputPath); xmlSerializer.Serialize(xmlOutput, file); }//using ends NameResolver.WriteOutputList(); } //method ReadArchive ends