/// <summary> /// 打包表格 /// </summary> /// <param name="version">版本</param> /// <returns>Zip包缓冲区</returns> public static byte[] PackTable(string version) { using (MemoryStream memory = new MemoryStream()) { using (ZipOutputStream stream = new ZipOutputStream(memory)) { byte[] buffer = null; // 服务器列表 if (!string.IsNullOrEmpty(version) && version[version.Length - 1] != '/') { version = version + '/'; } foreach (var data in ServerListConfig.DataList) { string md5Path = version + "updateex/" + data.Name + "/"; string tablePath = md5Path + TableManager.Directory; TableManager.ClearMD5Record(); // 活动 List <mw.ActivityConfig> Updateactivitytable = GMTActivityMananger.GetTableActivity().Values.ToList(); if (null != Updateactivitytable) { buffer = TableManager.Serialize(Updateactivitytable); TableManager.UpdateMD5(buffer, TableManager.Directory + "ActivityExConfig.protodata.bytes"); stream.PutNextEntry(new ZipEntry(tablePath + "ActivityExConfig.protodata.bytes")); stream.Write(buffer, 0, buffer.Length); } List <mw.AchieveConfig> Updateachievetable = GMTActivityMananger.GetTableAchieve().Values.ToList(); if (null != Updateachievetable) { buffer = TableManager.Serialize(Updateachievetable); TableManager.UpdateMD5(buffer, TableManager.Directory + "AchieveExConfig.protodata.bytes"); stream.PutNextEntry(new ZipEntry(tablePath + "AchieveExConfig.protodata.bytes")); stream.Write(buffer, 0, buffer.Length); } List <mw.RewardConfig> Updaterewardtable = GMTActivityMananger.GetTableReward().Values.ToList(); if (null != Updaterewardtable) { buffer = TableManager.Serialize(Updaterewardtable); TableManager.UpdateMD5(buffer, TableManager.Directory + "RewardExConfig.protodata.bytes"); stream.PutNextEntry(new ZipEntry(tablePath + "RewardExConfig.protodata.bytes")); stream.Write(buffer, 0, buffer.Length); } // 文本 buffer = TableManager.Serialize(TextManager.GetConfigList()); TableManager.UpdateMD5(buffer, TableManager.Directory + "UIDescExConfig.protodata.bytes"); stream.PutNextEntry(new ZipEntry(tablePath + "UIDescExConfig.protodata.bytes")); stream.Write(buffer, 0, buffer.Length); buffer = Encoding.UTF8.GetBytes(TableManager.GetMD5Text()); stream.PutNextEntry(new ZipEntry(md5Path + "md5.txt")); stream.Write(buffer, 0, buffer.Length); } stream.CloseEntry(); stream.Finish(); byte[] zipBuffer = new byte[memory.Length]; Array.Copy(memory.GetBuffer(), zipBuffer, zipBuffer.Length); return(zipBuffer); } } }
/// <summary> /// 发送表格 /// </summary> /// <param name="version">版本号</param> /// <returns>是否成功</returns> public static bool SendTable(string version) { byte[] buffer = null; errorText = ""; foreach (var data in ServerListConfig.DataList) { string md5Path = version + "/updateex/" + data.Name + "/"; string tablePath = md5Path + TableManager.Directory; FTPManager.MakeDirectory(version + "/"); FTPManager.MakeDirectory(version + "/updateex/"); FTPManager.MakeDirectory(version + "/updateex/" + data.Name); FTPManager.MakeDirectory(tablePath); TableManager.ClearMD5Record(); // 活动 List <mw.ActivityConfig> Updateactivitytable = GMTActivityMananger.GetTableActivity().Values.ToList(); buffer = TableManager.Serialize(Updateactivitytable); TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.ActivityConfig)][0]); if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.ActivityConfig)][0], buffer)) { errorText += FTPManager.GetLastError(); } List <mw.AchieveConfig> Updateachievetable = GMTActivityMananger.GetTableAchieve().Values.ToList(); buffer = TableManager.Serialize(Updateachievetable); TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.AchieveConfig)][0]); if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.AchieveConfig)][0], buffer)) { errorText += FTPManager.GetLastError(); } List <mw.RewardConfig> Updaterewardtable = GMTActivityMananger.GetTableReward().Values.ToList(); buffer = TableManager.Serialize(Updaterewardtable); TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.RewardConfig)][0]); if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.RewardConfig)][0], buffer)) { errorText += FTPManager.GetLastError(); } //编辑礼包 List <mw.GiftConfig> UpdatereGiftTable = new List <mw.GiftConfig>(); UpdatereGiftTable = GiftManager.addgiftconfig; buffer = TableManager.Serialize(UpdatereGiftTable); TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.GiftConfig)][0]); if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.GiftConfig)][0], buffer)) { errorText += FTPManager.GetLastError(); } // 文本 buffer = TableManager.Serialize(TextManager.GetConfigList()); TableManager.UpdateMD5(buffer, TableManager.Directory + tableNameDictionary[typeof(mw.UIDescConfig)][0]); if (!FTPManager.Upload(tablePath + tableNameDictionary[typeof(mw.UIDescConfig)][0], buffer)) { errorText += FTPManager.GetLastError(); } buffer = Encoding.UTF8.GetBytes(TableManager.GetMD5Text()); if (!FTPManager.Upload(md5Path + "md5.txt", buffer)) { errorText += FTPManager.GetLastError(); } } if (string.IsNullOrEmpty(errorText)) { return(true); } return(false); }