static void PackFile(string fileSrc, string fileDst, string name, ThreadParam param) { if (!IGG.FileUtil.CheckFileExist(fileDst)) { Debug.LogFormat("-->PackFile: {0} -> {1}", fileSrc, fileDst); IGG.FileUtil.CreateDirectoryFromFile(fileDst); IGG.FileUtil.DeleteFile(fileDst); LzmaHelper.Compress(fileSrc, fileDst); } if (ConstantData.enableMd5Name) { string md5 = IGG.FileUtil.CalcFileMd5(fileSrc); FileInfo fi = new FileInfo(fileDst); VersionData.VersionItem item = new VersionData.VersionItem(); item.Name = name.Replace(ConstantData.assetBundleExt, ""); item.Md5 = md5; item.Size = fi.Length; lock (param.lockd) { param.list.Add(item); } } }
public static void InitPatch() { IGG.FileUtil.DeleteFileDirectory(BuildSettings.patchDir); // version_orign { string pathDst = string.Format("{0}/version_orign", BuildSettings.patchDir); VersionData data = ConfigDataHelper.GetData <VersionData>(VERSION_PATH); if (data != null) { JSONClass json = new JSONClass(); for (int i = 0; i < data.Items.Length; ++i) { VersionData.VersionItem item = data.Items[i]; JSONClass jsonItem = new JSONClass(); jsonItem.Add("size", item.Size.ToString()); jsonItem.Add("md5", item.Md5); json.Add(item.Name, jsonItem); } IGG.FileUtil.SaveTextToFile(json.ToString(""), pathDst); } } // audio_orign { string pathAudio = string.Format("{0}/../WwiseProject/GeneratedSoundBanks/{1}", Application.dataPath, EditorHelper.platformName); pathAudio = pathAudio.Replace("\\", "/"); JSONClass jsonAudio = new JSONClass(); List <string> files = IGG.FileUtil.GetAllChildFiles(pathAudio); foreach (string file in files) { string md5 = IGG.FileUtil.CalcFileMd5(file); string name = file.Replace("\\", "/").Replace(pathAudio, ""); if (name.StartsWith("/")) { name = name.Substring(1); } jsonAudio.Add(name, md5); } string path = string.Format("{0}/audio_orign", BuildSettings.patchDir); IGG.FileUtil.SaveTextToFile(jsonAudio.ToString(""), path); } // version SaveVersionFile(new JSONClass()); }
private void InitVersionData(bool start = true) { Clear(); m_origns.Clear(); for (int i = 0; i < VersionData.Inst.Items.Length; ++i) { VersionData.VersionItem item = VersionData.Inst.Items[i]; m_origns.Add(item.Name, item.Md5); } if (start) { LoadManifest(); } }
static void CopyAsset(string file, string pathDst, List <VersionData.VersionItem> list, string name) { string md5 = IGG.FileUtil.CalcFileMd5(file); string pathDstFull = string.Format("{0}/{1}.ab", pathDst, md5); if (IGG.FileUtil.CheckFileExist(pathDstFull)) { } { IGG.FileUtil.CopyFile(file, pathDstFull); } FileInfo fi = new FileInfo(file); VersionData.VersionItem item = new VersionData.VersionItem(); item.Name = name.Replace(ConstantData.assetBundleExt, ""); item.Md5 = md5; item.Size = fi.Length; list.Add(item); }
public static void CopyPatch() { JSONClass jsonList = new JSONClass(); // ab { string pathOrign = string.Format("{0}/version_orign", BuildSettings.patchDir); if (!File.Exists(pathOrign)) { return; } JSONClass jsonOrign = JSONNode.Parse(IGG.FileUtil.ReadTextFromFile(pathOrign)) as JSONClass; VersionData data = ConfigDataHelper.GetData <VersionData>(VERSION_PATH); if (data != null) { for (int i = 0; i < data.Items.Length; ++i) { VersionData.VersionItem item = data.Items[i]; if (jsonOrign[item.Name] != null && string.Equals(item.Md5, jsonOrign[item.Name]["md5"].Value)) { continue; } string pathSrc = string.Format("{0}/{1}{2}", ConstantData.streamingAssetsPath, item.Md5, ConstantData.assetBundleExt); string pathDst = string.Format("{0}/ab/{1}{2}", BuildSettings.patchDir, item.Md5, ConstantData.assetBundleExt); IGG.FileUtil.CopyFile(pathSrc, pathDst); JSONClass itemJson = new JSONClass(); itemJson.Add("md5", item.Md5); itemJson.Add("size", item.Size.ToString()); itemJson.Add("type", new JSONData((int)PatchFileType.AssetBundle)); jsonList.Add(item.Name, itemJson); } } } // audio { string pathOrign = string.Format("{0}/audio_orign", BuildSettings.patchDir); JSONClass jsonOrign = JSONNode.Parse(IGG.FileUtil.ReadTextFromFile(pathOrign)) as JSONClass; string pathAudio = string.Format("{0}/../WwiseProject/GeneratedSoundBanks/{1}", Application.dataPath, EditorHelper.platformName); pathAudio = pathAudio.Replace("\\", "/"); List <string> files = IGG.FileUtil.GetAllChildFiles(pathAudio); foreach (string file in files) { string md5 = IGG.FileUtil.CalcFileMd5(file); long size = new FileInfo(file).Length; string filename = Path.GetFileName(file); if (jsonOrign[filename] == null || !string.Equals(md5, jsonOrign[filename].Value)) { string pathDst = string.Format("{0}/wwise/{1}", BuildSettings.patchDir, filename); IGG.FileUtil.CopyFile(file, pathDst); JSONClass item = new JSONClass(); item.Add("md5", md5); item.Add("size", size.ToString()); item.Add("type", new JSONData((int)PatchFileType.Wwise)); jsonList.Add(filename, item); } } } SaveVersionFile(jsonList); }