using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.IO;
using FileManager;
namespace MeasureData
{
public class ConfigFile : ISlo
{
#region 内容
//文件名
private string m_fileName;
public string FileName
{
get { return this.m_fileName; }
set { this.m_fileName = value; }
}
//文件路径
private string m_filepath;
public string FilePath
{
get { return this.m_filepath; }
set { this.m_filepath = value; }
}
public MeasureParam m_Config;
#endregion
public ConfigFile(MeasureParam mp)
{
this.m_Config = mp;
}
///
/// 创建XML文件
///
/// 创建XML文件的全路径
/// 0:失败;1:成功;2:文件已存在
public int CreateXml(String filename)
{
if (!File.Exists(filename))
{
if (XmlManager.CreateXmlFile(filename))
{
return 1;
}
else
{
return 0;
}
}
else
{
XmlManager.CreateXmlFile(filename);
return 2;
}
}
//保存
public bool Save(String filename)
{
CreateXml(filename);
XmlDocument doc = new XmlDocument();
if (File.Exists(filename))
{
doc.Load(filename);//载入xml文件
}
else
{
return false; //当前路径不存在
}
XmlNode root = doc.SelectSingleNode("XMLData");
Serialize(true, doc, root);
doc.Save(filename);
return true;
}
//读取
public bool Read(String filename)
{
XmlDocument doc = new XmlDocument();
if (File.Exists(filename))
{
doc.Load(filename);//载入xml文件
}
else
{
return false; //当前路径不存在
}
XmlNode root = doc.SelectSingleNode("XMLData");
Serialize(false, doc, root);
return true;
}
//XML文件保存
//样品孔存储xml文档
public override void Serialize(bool isStoring, XmlDocument xml, XmlNode rootNode)
{
Slo sFile = new Slo();
xString filename = new xString();
xString filepath = new xString();
filename.AssignValue(this.m_fileName);
filepath.AssignValue(this.m_filepath);
sFile.Register("FileName", filename);
sFile.Register("FilePath", filepath);
sFile.Register("Param", this.m_Config);
if (isStoring)
{
sFile.Serialize(true, xml, rootNode);
}
else
{
sFile.Serialize(false, xml, rootNode);
this.m_fileName = filename.value();
this.m_filepath = filepath.value();
}
}
}
}