您的位置:首页 > 其它

批量增加脚本命名空间

2017-11-07 10:28 495 查看
using System.IO;

using System.Text;

using UnityEditor;

using UnityEngine;

public class Test : MonoBehaviour

{

    public static string startStr = "\nnamespace Test{";

    public static string endStr = "\n}";

    public static string checkStr = "public class";

    public static string spaceName = "namespace Test";

    public static string rootName = "/Scripts";

    [MenuItem("Assets/AutoAddNameSpace")]

    public static void AutoAddNameSpace()

    {

        CheckFileName(Application.dataPath + rootName);

    }

    public static void CheckFileName(string dataPath)

    {

        foreach (var item in Directory.GetFiles(dataPath))

        {

            if (item.Contains(".cs") && !item.Contains(".meta"))

            {

                if (!ContainNameSpace(item))

                {

                    AddNameSpace(item);

                }

            }

        }

        foreach (var item in Directory.GetDirectories(dataPath))

        {

            CheckFileName(item);

        }

    }

    public static bool ContainNameSpace(string path)

    {

        StreamReader sr_check = new StreamReader(path);

        string all = sr_check.ReadToEnd();

        sr_check.Close();

        return all.Contains(spaceName);

    }

    public static void AddNameSpace(string path)

    {

        StreamReader sr = new StreamReader(path);

        StringBuilder sb = new StringBuilder();

        string line;

        int lineIndex = 0;

        while ((line = sr.ReadLine()) != null)

        {

            if (line.Contains(checkStr))

            {

                sb.Append(startStr);

            }

            if (lineIndex == 0)

                sb.Append(line);

            else

                sb.Append("\n" + line);

            lineIndex++;

        }

        sb.Append(endStr);

        sr.Close();

        StreamWriter sw = new StreamWriter(path);

        sw.WriteLine(sb.ToString());

        sw.Close();

    }
}

使用完流之后 需要将流关闭,否则会出现无法访问文件的情况。因为此时文件正在被流占用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: