private static void ExtractFile(string file) { Console.WriteLine(file); byte[] data = File.ReadAllBytes(file); Texture texture = Texture.ParseTexture(data); for (int i = 0; i < texture.Frames.Length; i++) { string destframe = string.Format("{0}{1}.dds", file, texture.Frames.Length > 1 ? "." + i : ""); DDS frame = DDS.Parse(texture.Frames[i]); if (frame.Variant == DDSVariant.Reversed) { frame.Reverse(); } frame.FixHeader(); string destdir = Path.GetDirectoryName(destframe); if (destdir == null) { Console.WriteLine(" Error extracting frame {0}: Destination directory no found.", i); continue; } if (!Directory.Exists(destdir)) { Directory.CreateDirectory(destdir); } File.WriteAllBytes(destframe, frame.GetBytes()); } }