Esempio n. 1
0
    public static void PackPatches(string dirPath, string patchName, string savePath, string ext)
    {
        var prefix = Path.GetFullPath(dirPath);

        var zipfiles = EditorFileUtility.FilterDirectory(savePath, new string[] { ".patch" }, false);

        if (zipfiles != null)
        {
            foreach (var zip in zipfiles)
            {
                File.Delete(zip.FullName);
            }
        }

        var files = EditorFileUtility.FilterDirectory(dirPath, new string[] { ext });

        if (files != null)
        {
            int patchCount             = 1;
            HashSet <string> patchList = new HashSet <string>();

            foreach (var file in files)
            {
                if (!patchList.Contains(patchName + "p" + patchCount))
                {
                    patchList.Add(patchName + "p" + patchCount);
                    using (ZipFile zip = ZipFile.Create(savePath + "/" + patchName + "p" + patchCount + ".patch"))
                    {
                        zip.BeginUpdate();
                        zip.Add(file.FullName, file.FullName.Replace(prefix, ""));
                        zip.CommitUpdate();
                    }
                }
                else
                {
                    using (ZipFile zip = new ZipFile(savePath + "/" + patchName + "p" + patchCount + ".patch"))
                    {
                        zip.BeginUpdate();
                        zip.Add(file.FullName, file.FullName.Replace(prefix, ""));
                        zip.CommitUpdate();
                    }
                }

                FileInfo fi = new FileInfo(savePath + "/" + patchName + "p" + patchCount + ".patch");
                if (fi.Length / 1024 > 1024 * 5)
                {
                    ++patchCount;
                }
            }

            if (patchCount == 1)
            {
                FileInfo fi = new FileInfo(savePath + "/" + patchName + "p" + patchCount + ".patch");
                fi.MoveTo(savePath + "/" + patchName + ".patch");
            }
        }
    }
Esempio n. 2
0
    public static void ComplieXmlFile(string xmlExportDir, string xmlBinExportDir)
    {
        var fileInfos = EditorFileUtility.FilterDirectory(xmlExportDir, new string[] { ".xml" }, false);

        foreach (var file in fileInfos)
        {
            ParseXml(file.FullName, xmlBinExportDir);
        }
    }
Esempio n. 3
0
    public static void CreateCsCode(string xmlExportDir, string csExportDir, string templateFile)
    {
        if (Directory.Exists(csExportDir))
        {
            Directory.Delete(csExportDir, true);
        }

        Directory.CreateDirectory(csExportDir);

        var fileInfos = EditorFileUtility.FilterDirectory(xmlExportDir, new string[] { ".xml" }, false);

        foreach (var file in fileInfos)
        {
            ParseXml(file.FullName, csExportDir, templateFile);
        }
    }
Esempio n. 4
0
    public static Dictionary <string, string> GetFilesMD5(string path, string ext)
    {
        Dictionary <string, string> fileMd5Map = new Dictionary <string, string>();
        var files = EditorFileUtility.FilterDirectory(path, new string[] { ext });

        if (files != null)
        {
            foreach (var file in files)
            {
                var md5 = EditorFileUtility.GetMD5HashFromFile(file.FullName);
                fileMd5Map.Add(file.FullName, md5);
            }
        }

        return(fileMd5Map);
    }
Esempio n. 5
0
    private string ListExcelFiles()
    {
        if (Directory.Exists(m_CacheExcelExportDir) && !string.IsNullOrEmpty(m_CacheExcelExportDir))
        {
            FileInfo fileInfo          = new FileInfo(m_CacheExcelExportDir);
            var      lastFileWriteTime = EditorTimeUtility.DateTimeToUnixTimesStamp(fileInfo.LastWriteTimeUtc);
            if (lastFileWriteTime != m_ExcelExportDirChange)
            {
                m_ExcelFileList = EditorFileUtility.FilterDirectory(m_CacheExcelExportDir,
                                                                    new string[] { ".xlsx", ".xls", ".xlsm" }, false);

                m_ExcelExportDirChange   = lastFileWriteTime;
                m_SelectionGridIndex     = -1;
                m_LastSelectionGridIndex = -1;
                return(CheckDuplicateWorkSheet());
            }
        }
        return("");
    }
Esempio n. 6
0
    public static void CheckAssetBundleSize(string path, string ext)
    {
        var files = EditorFileUtility.FilterDirectory(path, new string[] { ext });

        if (files != null)
        {
            StringBuilder sb = new StringBuilder();
            sb.AppendLine("大于1m的AssetBundle包(建议AssetBundle的包小于1m,最好不要超过2m)");
            foreach (var file in files)
            {
                FileInfo fi = new FileInfo(file.FullName);
                if (fi.Length / 1024 > 1024)
                {
                    sb.AppendLine("\tAssetBundle文件路径:" + fi.FullName);
                    sb.AppendLine("\t\t文件大小:" + (fi.Length / 1024f / 1024f) + "m");
                }
            }

            File.WriteAllText(path + "/AssetBundleSize.txt", sb.ToString());
            WindowsOSUtility.ExploreFile(path);
        }
    }
Esempio n. 7
0
    public string ExportConfig()
    {
        m_PreloadList  = new List <short>();
        m_HighList     = new List <short>();
        m_MediumList   = new List <short>();
        m_NormalList   = new List <short>();
        m_LowList      = new List <short>();
        m_DontLoadList = new List <short>();

        var fileInfos = EditorFileUtility.FilterDirectory(m_Window.SettingUI.XmlExportDirectory, new string[] { ".xml" }, false);

        fileInfos.Sort(SortData);

        var priorityMap = new Dictionary <string, int>();
        var xmlDoc      = new XmlDocument();

        xmlDoc.Load(m_Window.PriorityConfig.ConfigFilePath);
        var nodeList = xmlDoc.SelectSingleNode("root").ChildNodes;

        foreach (var childNode in nodeList)
        {
            var childElement = (XmlElement)childNode;
            foreach (var file in fileInfos)
            {
                if (Path.GetFileNameWithoutExtension(file.FullName) == childElement.Name)
                {
                    priorityMap.Add(childElement.Name, int.Parse(childElement.InnerText));
                    break;
                }
            }
        }

        for (int i = 0; i < fileInfos.Count; i++)
        {
            var file = fileInfos[i];
            var name = Path.GetFileNameWithoutExtension(file.FullName);
            switch (priorityMap[name])
            {
            case 0:
                m_PreloadList.Add((short)i);
                break;

            case 1:
                m_HighList.Add((short)i);
                break;

            case 2:
                m_MediumList.Add((short)i);
                break;

            case 3:
                m_NormalList.Add((short)i);
                break;

            case 4:
                m_LowList.Add((short)i);
                break;

            case 5:
                m_DontLoadList.Add((short)i);
                break;
            }
        }

        WriteLoadConfig(priorityMap, fileInfos);
        return(string.Format("<color=#bbbbbb>写入{0}个xml的加载优先级</color>", fileInfos.Count));
    }