private string Enum2Str(TinaX.Lua.LuaFileExten emm) //这儿返回的就是最终后缀名,带小点点 { switch (emm) { case TinaX.Lua.LuaFileExten.lua: return(".lua"); case TinaX.Lua.LuaFileExten.lua_txt: return(".lua.txt"); case TinaX.Lua.LuaFileExten.txt: return(".txt"); default: return(".unknow"); } }
private TinaX.Lua.LuaFileExten mFiles_CurRefreshExt; //当前刷新出来的列表是这个后缀 /// <summary> /// /// </summary> private void Draw_Files() { GUILayout.BeginVertical(); GUILayout.Label("批量更改Lua文件后缀名 - 规则:"); GUILayout.BeginHorizontal(); GUILayout.Label("从后缀名:"); mFiles_FromExt = (TinaX.Lua.LuaFileExten)EditorGUILayout.EnumPopup(mFiles_FromExt); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("修改为:"); mFiles_ToExt = (TinaX.Lua.LuaFileExten)EditorGUILayout.EnumPopup(mFiles_ToExt); GUILayout.EndHorizontal(); GUILayout.Space(10); GUILayout.Label("从:example" + Enum2Str(mFiles_FromExt) + " 修改为:example" + Enum2Str(mFiles_ToExt)); GUILayout.Space(20); if (GUILayout.Button("刷新列表")) { if (mFiles_FromExt == mFiles_ToExt) { XLog.PrintW("我替换我自己?"); return; } var fromExt = Enum2Str(mFiles_FromExt); var files_guid = AssetDatabase.FindAssets("", new string[] { mCurPath }); foreach (var item in files_guid) { var fileName = AssetDatabase.GUIDToAssetPath(item); if (mFiles_FromExt == TinaX.Lua.LuaFileExten.txt) { //得分辨,仅仅获取.txt,不包含".lua.txt" if (fileName.ToLower().EndsWith(".txt") && !fileName.ToLower().EndsWith(".lua.txt")) { mFiles_ChangeList.Add(fileName); } } else if (mFiles_FromExt == TinaX.Lua.LuaFileExten.lua_txt) { if (fileName.ToLower().EndsWith(".lua.txt")) { mFiles_ChangeList.Add(fileName); } } else if (mFiles_FromExt == TinaX.Lua.LuaFileExten.lua) { if (fileName.ToLower().EndsWith(".lua")) { mFiles_ChangeList.Add(fileName); } } } mFiles_CurRefreshExt = mFiles_FromExt; } files_Scroll = GUILayout.BeginScrollView(files_Scroll); if (mFiles_ChangeList.Count <= 0) { GUILayout.Label("没有符合条件的文件,请尝试刷新"); } else { foreach (var item in mFiles_ChangeList) { GUILayout.BeginHorizontal(); GUILayout.Label(item); if (GUILayout.Button("[移除]", GUILayout.MaxWidth(80))) { mFiles_ChangeList.Remove(item); break; } GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); if (mFiles_ChangeList.Count > 0) { if (GUILayout.Button("开始替换")) { if (mFiles_CurRefreshExt != mFiles_FromExt) { EditorUtility.DisplayDialog("错误", "需要再刷新一次列表", "好"); return; } //开始替换 foreach (var item in mFiles_ChangeList) { Debug.Log("改名:" + item + " -> " + System.IO.Path.GetFileName(item).Replace(Enum2Str(mFiles_FromExt), Enum2Str(mFiles_ToExt))); AssetDatabase.RenameAsset(item, System.IO.Path.GetFileName(item).Replace(Enum2Str(mFiles_FromExt), Enum2Str(mFiles_ToExt))); } } } GUILayout.EndVertical(); }