static void Transmit()
    {

        ABMgr mgr = new ABMgr();

        DirectoryInfo di = new DirectoryInfo(mInFolder);

        foreach (FileInfo fi in di.GetFiles())
        {
            //  判断
            if (fi.FullName.EndsWith(".meta"))
                continue;

            if (fi.FullName.EndsWith(ABConfig.extensionName))
                continue;

            string fifullname = fi.FullName.Replace("\\", "/");

            int index = fifullname.IndexOf("Assets/");

            if (index == -1)
            {
                Debug.LogError(fifullname + " No Assets");

                continue;
            }

            //  输出字符串拼接 
            string fifolder = Path.GetDirectoryName(fi.FullName).Replace("\\", "/");

            int childfolderindex = fifullname.IndexOf(mInFolder, 0);

            if (childfolderindex == -1)
            {
                Debug.LogError(childfolderindex + " [between] " + fifullname + " [and] " + mInFolder);

                continue;
            }

            string outfolder = mOutFolder + fifolder.Substring(mInFolder.Length);

            //Debug.Log("outfolder " + outfolder);

            //  输入资源 
            string assefullname = fifullname.Substring(index);

            UnityEngine.Object obj = AssetDatabase.LoadAssetAtPath(assefullname, typeof(UnityEngine.Object));

            if (obj == null)
            {
                Debug.LogError(assefullname + " [LoadAssetAtPath Failed] ");

                continue;
            }

            //  输出资源 
            string targetPath = outfolder + "/" + Path.GetFileNameWithoutExtension(fifullname) + ABConfig.extensionName;

            //Debug.Log("targetPath " + targetPath);

            bool suc = mgr.CreateAssetBundleOne(obj, targetPath);

            if (!suc)
            {
                Debug.LogError(fifullname + " [CreateAssetBundleOne Failed] " + targetPath);

                continue;

            }
            else
                Debug.Log("Create " + targetPath);

        }
    }