Exemple #1
0
        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");
            }
        }
Exemple #2
0
        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();
        }