void refreshContent() { editKey = ""; languageList.Clear(); dictOrgs.Clear(); dict.Clear(); string dir = Application.dataPath + "/" + CLPathCfg.self.localizationPath; dir = dir.Replace("/upgradeRes/", "/upgradeRes4Dev/"); string[] files = Directory.GetFiles(dir); byte[] buff = null; Dictionary <string, string> tempDic = null; for (int i = 0; i < files.Length; i++) { if (ECLEditorUtl.isIgnoreFile(files [i])) { continue; } buff = File.ReadAllBytes(files [i]); languageList.Add(Path.GetFileNameWithoutExtension(files [i])); ByteReader reader = new ByteReader(buff); tempDic = reader.ReadDictionary(); foreach (KeyValuePair <string, string> cell in tempDic) { if (dictOrgs.ContainsKey(cell.Key.ToString())) { ArrayList list = dictOrgs [cell.Key.ToString()]; if (list == null) { list = new ArrayList(); } list.Add(cell.Value); dictOrgs [cell.Key.ToString()] = list; } else { ArrayList list = new ArrayList(); list.Add(cell.Value); dictOrgs [cell.Key.ToString()] = list; } } } dict = dictOrgs; }
static void doCreate(string path, Hashtable lastOtherVer, Hashtable lastPriorityVer, Hashtable lastCfgdataVer, ref Hashtable outMap) { string[] fileEntries = Directory.GetFiles(path); string extension = ""; string filePath = ""; string md5Str = ""; foreach (string fileName in fileEntries) { extension = Path.GetExtension(fileName); if (ECLEditorUtl.isIgnoreFile(fileName)) { continue; } filePath = filter(fileName); filePath = filePath.Replace("\\", "/"); filePath = filePath.Replace("/upgradeRes4Publish/", "/upgradeRes/"); if (ECLProjectManager.isModified(fileName)) { md5Str = Utl.MD5Encrypt(File.ReadAllBytes(fileName)); } else { md5Str = MapEx.getString(lastOtherVer, filePath); if (string.IsNullOrEmpty(md5Str)) { md5Str = MapEx.getString(lastPriorityVer, filePath); } else if (string.IsNullOrEmpty(md5Str)) { md5Str = MapEx.getString(lastCfgdataVer, filePath); } } outMap [filePath] = md5Str; } string[] dirEntries = Directory.GetDirectories(path); foreach (string dir in dirEntries) { //跳过不同平台的资源 #if UNITY_ANDROID if (Path.GetFileName(dir).Equals("IOS") || Path.GetFileName(dir).Equals("Standalone") || Path.GetFileName(dir).Equals("StandaloneOSX")) { continue; } #elif UNITY_IOS if (Path.GetFileName(dir).Equals("Android") || Path.GetFileName(dir).Equals("Standalone") || Path.GetFileName(dir).Equals("StandaloneOSX")) { continue; } #elif UNITY_STANDALONE_WIN if (Path.GetFileName(dir).Equals("Android") || Path.GetFileName(dir).Equals("IOS") || Path.GetFileName(dir).Equals("StandaloneOSX")) { continue; } #elif UNITY_STANDALONE_OSX if (Path.GetFileName(dir).Equals("Android") || Path.GetFileName(dir).Equals("IOS") || Path.GetFileName(dir).Equals("Standalone")) { continue; } #endif doCreate(dir, lastOtherVer, lastPriorityVer, lastCfgdataVer, ref outMap); } }
void initData(string path, int tabs) { //跳过不同平台的资源 #if UNITY_ANDROID if (Path.GetFileName(path).Equals("IOS") || Path.GetFileName(path).Equals("Standalone") || Path.GetFileName(path).Equals("StandaloneOSX")) { return; } #elif UNITY_IOS if (Path.GetFileName(path).Equals("Android") || Path.GetFileName(path).Equals("Standalone") || Path.GetFileName(path).Equals("StandaloneOSX")) { return; } #elif UNITY_STANDALONE_WIN if (Path.GetFileName(path).Equals("Android") || Path.GetFileName(path).Equals("IOS") || Path.GetFileName(path).Equals("StandaloneOSX")) { return; } #elif UNITY_STANDALONE_OSX if (Path.GetFileName(path).Equals("Android") || Path.GetFileName(path).Equals("IOS") || Path.GetFileName(path).Equals("Standalone")) { return; } #elif UNITY_WEBGL if (Path.GetFileName(path).Equals("Android") || Path.GetFileName(path).Equals("IOS") || Path.GetFileName(path).Equals("Standalone") || Path.GetFileName(path).Equals("StandaloneOSX")) { return; } #endif ECLResInfor ri = new ECLResInfor(); path = path.Replace("\\", "/"); ri.path = path; ri.name = Path.GetFileName(path); ri.isDir = true; ri.selected = true; ri.tabs = tabs; ri.relativePath = ri.path.Replace(Application.dataPath + "/", ""); ri.publishPath = Utl.filterPath(ri.relativePath); ri.ver = ""; datas.Add(ri); string[] fileEntries = Directory.GetFiles(path); //因为Application.dataPath得到的是型如 "工程名称/Assets" int count = fileEntries.Length; string fileName = ""; string extension = ""; for (int i = 0; i < count; i++) { fileName = fileEntries [i]; extension = Path.GetExtension(fileName); if (ECLEditorUtl.isIgnoreFile(fileName)) { continue; } totalFiles++; ri = new ECLResInfor(); fileName = fileName.Replace("\\", "/"); ri.path = fileName; ri.name = Path.GetFileName(fileName); ri.isDir = false; ri.selected = true; ri.tabs = tabs + 1; ri.relativePath = ri.path.Replace(Application.dataPath + "/", ""); ri.publishPath = Utl.filterPath(ri.relativePath); ri.ver = Utl.MD5Encrypt(File.ReadAllBytes(fileName)); //MapEx.getString (resLastUpgradeVer, ri.publishPath); datas.Add(ri); selectedDatas.Add(ri); } string[] dirEntries = Directory.GetDirectories(path); count = dirEntries.Length; string dir = ""; for (int i = 0; i < count; i++) { initData(dirEntries [i], tabs + 1); } }