public AssetBundleBuildSizeInfo GetSizeInfo()
        {
            if (BuildType != AssetBundleBuildType.BuildAtSize)
            {
                throw new Exception($"目录{Dir}的打包方式不是尺寸打包!");
            }

            var dirId = IOUtility.GetSomeDirPath(Dir, 3);

            AtSizeSetting.SizeInfo = new AssetBundleBuildSizeInfo();
            var fileInfos = IOUtility.GetFileInfosAtDir(Dir, true)
                            .Where(d => AssetBundleBuilder.EndCheck(IgnoreRule, d.FullName))
                            .Where(d => AssetBundleBuilder.ContainCheck(IgnoreRule, d.FullName)).ToList();
            long maxSize     = AtSizeSetting.PackageSize * 1024;
            long currentSize = 0;
            var  bundleIndex = 0;
            var  paths       = new List <string>();

            foreach (var fileInfo in fileInfos)
            {
                var path = fileInfo.FullName;
                path         = path.ReplaceDoubleBackslash();
                currentSize += fileInfo.Length;
                if (fileInfo.Length >= maxSize)
                {
                    var assetId = Path.GetFileNameWithoutExtension(fileInfo.Name);
                    AtSizeSetting.SizeInfo.AppOutFile(path, assetId);
                    Debug.Log($"{fileInfo.Name} 文件大小大于尺寸分包的最大尺寸");
                    continue;
                }

                if (currentSize <= maxSize)
                {
                    paths.Add(path);
                }
                else
                {
                    AddSubPackage();
                    paths.Add(path);
                }
            }

            AddSubPackage(); // 添加最后一个子包尺寸小于分包限制的剩余资源
            AtSizeSetting.SetSizeTotal(AtSizeSetting.SizeInfo.GetAssetTotal());
            AssetBundleEditorDati.GetSingleDati().Save();
            return(AtSizeSetting.SizeInfo);

            void AddSubPackage()
            {
                var subBundleId = $"{dirId}_{bundleIndex}".ToLower();

                AtSizeSetting.SizeInfo.AddSubPacakage(subBundleId, paths);
                bundleIndex++;
                currentSize = 0;
                paths.Clear();
            }
        }