public bool Load(string path) { if (!File.Exists(path)) { return(false); } Clear(); name = path; using (var reader = new BinaryReader(File.OpenRead(path))) { var count = reader.ReadInt32(); for (var i = 0; i < count; i++) { var file = new VFile { id = i }; file.Deserialize(reader); AddFile(file); } _pos = reader.BaseStream.Position; } Reindex(); return(true); }
public static List <VFile> LoadVersions(string filename, bool update = false) { var rootDir = Path.GetDirectoryName(filename); var data = update ? _updateData : _baseData; data.Clear(); using (var stream = File.OpenRead(filename)) { var reader = new BinaryReader(stream); var list = new List <VFile> (); var ver = reader.ReadInt32(); Debug.Log("LoadVersions:" + ver); var count = reader.ReadInt32(); for (var i = 0; i < count; i++) { var version = new VFile(); version.Deserialize(reader); list.Add(version); data [version.name] = version; var dir = string.Format("{0}/{1}", rootDir, Path.GetDirectoryName(version.name)); if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } } return(list); } }
public void AddFile(string path, long len, string hash) { var file = new VFile { name = path, len = len, hash = hash }; AddFile(file); }
public static void BuildVersions(string outputPath, string[] bundles, int version) { var path = outputPath + "/" + Filename; if (File.Exists(path)) { File.Delete(path); } var dataPath = outputPath + "/" + Dataname; if (File.Exists(dataPath)) { File.Delete(dataPath); } var disk = new VDisk(); foreach (var file in bundles) { using (var fs = File.OpenRead(outputPath + "/" + file)) { disk.AddFile(file, fs.Length, Utility.GetCRC32Hash(fs)); } } disk.name = dataPath; disk.Save(); using (var stream = File.OpenWrite(path)) { var writer = new BinaryWriter(stream); writer.Write(version); writer.Write(disk.files.Count + 1); using (var fs = File.OpenRead(dataPath)) { var file = new VFile { name = Dataname, len = fs.Length, hash = Utility.GetCRC32Hash(fs) }; file.Serialize(writer); } foreach (var file in disk.files) { file.Serialize(writer); } } }
public void Deserialize(BinaryReader reader) { ver = reader.ReadInt32(); var count = reader.ReadInt32(); for (int i = 0; i < count; i++) { var file = new VFile(); file.Deserialize(reader); files.Add(file); _dataFiles[file.name] = file; } count = reader.ReadInt32(); for (int i = 0; i < count; i++) { var patch = new VPatch(); patch.Deserialize(reader); patches.Add(patch); _dataPatches[patch.id] = patch; } }
public static List <VFile> LoadVersions(string filename, bool update = false) { var data = update ? _updateData : _baseData; data.Clear(); using (var stream = File.OpenRead(filename)) { var reader = new BinaryReader(stream); var list = new List <VFile> (); var ver = reader.ReadInt32(); Debug.Log("LoadVersions:" + ver); var count = reader.ReadInt32(); for (var i = 0; i < count; i++) { var version = new VFile(); version.Deserialize(reader); list.Add(version); data [version.name] = version; } return(list); } }
private void AddDownload(VFile item) { _downloader.AddDownload(GetDownloadURL(item.name), item.name, _savePath + item.name, item.hash, item.len); }
private void AddFile(VFile file) { _data[file.name] = file; files.Add(file); }