public void Save(string path) { using (var w = new BinaryWriter(File.Create(path))) { ResourceSignature.Write(w); w.Write(TypeToString(Type)); w.Write(Version); w.Write(ResourceSignature.TimeStamp); ID.Write(w); WriteData(w); } }
private static void Description0000to0001(string path) { string name = null; using (var reader = new BinaryReader(File.OpenRead(path))) { if (!Description.ReadSignature(reader)) { throw new Exception("Invalid description base file format."); } reader.ReadString(); // do not care about current version name = reader.ReadString(); } var resources_path = Path.GetFullPath(path); resources_path = Path.Combine(Path.GetDirectoryName(resources_path), "Resources"); var files = Directory.GetFiles(resources_path, "*", SearchOption.AllDirectories); foreach (var file in files) { if (Resource.GetType(file).ValidBinary()) { var bytes = File.ReadAllBytes(file); using (var reader = new BinaryReader(new MemoryStream(bytes))) using (var writer = new BinaryWriter(File.OpenWrite(file))) { ResourceSignature.Read(reader); ResourceSignature.Write(writer); writer.Write(reader.ReadString()); writer.Write(reader.ReadString()); writer.Write(reader.ReadString()); new ResourceID().Write(writer); writer.Write(reader.ReadBytes((int)(reader.BaseStream.Length - reader.BaseStream.Position))); } } } using (var writer = new BinaryWriter(File.OpenWrite(path))) { Description.WriteSignature(writer); writer.Write("0.0.0.1"); writer.Write(name); } }