代码拉取完成,页面将自动刷新
同步操作将从 阿彪开源/多功能文件合并工具 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
using System;
using System.IO;
using System.Windows.Forms;
using System.Xml;
namespace files_merge
{
/// <summary>
/// 配置文件
/// </summary>
class ConfigFile
{
/// <summary>
/// 构造方法
/// </summary>
public ConfigFile()
{
}
/// <summary>
/// 创建配置文件
/// </summary>
/// <param name="path"></param>
public void Create(string path, byte paddingbyte, RowDataInfo[] rowdata)
{
// 初始化一个xml实例
XmlDocument xml = new XmlDocument();
// 创建文件头声明
XmlDeclaration xmldecl = xml.CreateXmlDeclaration("1.0", "utf-8", null);
xml.AppendChild(xmldecl);
// 创建root组
XmlElement root = xml.CreateElement("root");
xml.AppendChild(root);
// 创建配置组
XmlElement element = xml.CreateElement("config");
root.AppendChild(element);
XmlElement element1 = xml.CreateElement("PaddingByte");
element1.InnerText = paddingbyte.ToString("X2");
element.AppendChild(element1);
// 创建文件列表组
element = xml.CreateElement("FilesList");
root.AppendChild(element);
foreach (RowDataInfo row in rowdata)
{
element1 = xml.CreateElement("File");
element1.InnerText = Path.GetFileName(row.FileName);
element1.SetAttribute("FileName", row.FileName);
element1.SetAttribute("FileLength", row.FileLength.ToString());
element1.SetAttribute("FileComment", row.FileComment);
element1.SetAttribute("StartAddr", row.StartOffsetAddr.ToString());
element1.SetAttribute("EndAddr", row.EndOffsetAddr.ToString());
element.AppendChild(element1);
}
// 保存xml文件
xml.Save(path);
}
/// <summary>
/// 读取
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public ConfigFileArgs Read(string path)
{
// 配置文件参数
ConfigFileArgs args = new ConfigFileArgs();
// 初始化一个xml实例
XmlDocument xml = new XmlDocument();
try
{
// 加载文件
xml.Load(path);
XmlNode root = xml.SelectSingleNode("root");
XmlNode config = root.SelectSingleNode("config");
XmlNode file = root.SelectSingleNode("FilesList");
XmlNodeList file_list = file.ChildNodes;
XmlNode node = config.SelectSingleNode("PaddingByte");
args.padByte = Convert.ToByte(node.InnerText, 16);
args.rowsData = new RowDataInfo[file_list.Count];
int count = 0;
foreach (XmlNode file_node in file_list)
{
XmlElement xe = (XmlElement)file_node;
args.rowsData[count].FileName = xe.GetAttribute("FileName");
args.rowsData[count].FileLength = Convert.ToUInt32(xe.GetAttribute("FileLength"));
args.rowsData[count].FileComment = xe.GetAttribute("FileComment");
args.rowsData[count].StartOffsetAddr = Convert.ToUInt32(xe.GetAttribute("StartAddr"));
args.rowsData[count].EndOffsetAddr = Convert.ToUInt32(xe.GetAttribute("EndAddr"));
count++;
}
}
catch (Exception ex)
{
MessageBox.Show("XML文件操作失败,请确认文件是否正确\r\n" + ex.Message, "温馨提示", MessageBoxButtons.OK);
}
return args;
}
}
/// <summary>
/// 配置文件参数
/// </summary>
public struct ConfigFileArgs
{
public byte padByte;
public RowDataInfo[] rowsData;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。