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"); } } }
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); } }
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); } }
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); }
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(""); }
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); } }
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)); }