private bool TryDecryptionLanguagePackage(string AStrSourceFile, string AStrPassword, ref string AStrReturn) { bool LBoolReturn = true; string LStrSourceBody = string.Empty; try { IStrLanguagePackageBody = string.Empty; AStrReturn = string.Empty; //判断是否为XML格式的文件 LBoolReturn = IsXMLTypeFile(AStrSourceFile); if (!LBoolReturn) { VoiceCyberPrivateEncryptionDecryption.DecryptFileToString(AStrSourceFile, AStrPassword, ref AStrReturn); LBoolReturn = StringIsLanguagePackage(AStrReturn); if (!LBoolReturn) { AStrReturn = "E004002"; } IStrLanguagePackageBody = AStrReturn; } else { //判断是否为语言包文件 LBoolReturn = FileIsLanguagePackage(AStrSourceFile); if (!LBoolReturn) { AStrReturn = "E004001"; } } } catch { LBoolReturn = false; } return(LBoolReturn); }
/// <summary> /// 将修改后的数据写入到XML文件 /// </summary> /// <param name="AStrReturn"></param> /// <returns></returns> private bool Save2XmlStep03(ref string AStrReturn) { bool LBoolReturn = true; int LIntLoopColumns = 0, LIntAllColumns = 0; int LIntLoopRows = 0, LIntAllRows = 0; string LStrSourceFile = string.Empty; string LStrColumnName = string.Empty; string LStrCallReturn = string.Empty; try { AStrReturn = string.Empty; LStrSourceFile = System.IO.Path.Combine(App.GStrUserMyDocumentsDirectory, IListStrSaveOptions[1] + "-" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml"); XmlTextWriter LXmlWriter = new XmlTextWriter(LStrSourceFile, Encoding.UTF8); LXmlWriter.Formatting = Formatting.Indented; LXmlWriter.WriteStartDocument(true); LXmlWriter.WriteStartElement("LanguageDataRowsList"); LXmlWriter.WriteAttributeString("TableName", "T_00_005"); LXmlWriter.WriteAttributeString("LanguageCode", IListStrSaveOptions[1]); LXmlWriter.WriteAttributeString("Version", "8.02.001"); LXmlWriter.WriteAttributeString("Options", "Export"); LXmlWriter.WriteAttributeString("Author", "Young Yang"); LIntAllRows = IDataTableLanguagePackage.Rows.Count; LIntAllColumns = IDataTableLanguagePackage.Columns.Count; for (LIntLoopRows = 0; LIntLoopRows < LIntAllRows; LIntLoopRows++) { LXmlWriter.WriteStartElement("T_00_005"); for (LIntLoopColumns = 0; LIntLoopColumns < LIntAllColumns; LIntLoopColumns++) { LStrColumnName = IDataTableLanguagePackage.Columns[LIntLoopColumns].ColumnName; if (IDataTableLanguagePackage.Columns[LIntLoopColumns].DataType == typeof(DateTime)) { string LStrDateTimeData = IDataTableLanguagePackage.Rows[LIntLoopRows][LIntLoopColumns].ToString(); if (!string.IsNullOrEmpty(LStrDateTimeData)) { LXmlWriter.WriteElementString(LStrColumnName, ((DateTime)IDataTableLanguagePackage.Rows[LIntLoopRows][LIntLoopColumns]).ToString("yyyy-MM-dd HH:mm:ss")); } else { LXmlWriter.WriteElementString(LStrColumnName, DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss")); } } else { LXmlWriter.WriteElementString(LStrColumnName, IDataTableLanguagePackage.Rows[LIntLoopRows][LIntLoopColumns].ToString()); } } LXmlWriter.WriteEndElement(); } LXmlWriter.WriteEndElement(); LXmlWriter.WriteEndDocument(); LXmlWriter.Flush(); LXmlWriter.Close(); if (string.IsNullOrEmpty(IListStrSaveOptions[2])) { if (System.IO.File.Exists(IListStrSaveOptions[0])) { System.IO.File.Delete(IListStrSaveOptions[0]); } System.IO.File.Move(LStrSourceFile, IListStrSaveOptions[0]); } else { LBoolReturn = VoiceCyberPrivateEncryptionDecryption.EncryptFileToFile(LStrSourceFile, IListStrSaveOptions[0], IListStrSaveOptions[2], true, true, ref LStrCallReturn); if (!LBoolReturn) { if (LStrCallReturn == "000") { AStrReturn = "UMP000E005" + App.GStrSpliterChar + ""; } } } } catch (Exception ex) { LBoolReturn = false; AStrReturn = "UMP003E003" + App.GStrSpliterChar + ex.Message; } return(LBoolReturn); }