DirectoryInfo:文件搜索;XmlSerializer:xml串行化读入和存储;IComparer:Array排序
一、文件搜索:
1、读入
[XmlRoot("MapItems", Namespace = "http://www.gentek.com.cn/CommonLibs.UI.MapItems", IsNullable = false)]
public class MapItems
{
[XmlAttribute]
public string IconResxFile;
[XmlArray("Items")]
public MapItem[] Items;
[XmlAttribute]
public string MapImgFile;
![]()
public MapItems();
}
![]()
public class MapItem
{
public Rectangle drawRect;
public string Id;
public bool isbig;
public bool isdrawRect;
public string m_Statement;
public Point Pos;
public bool Selected;
public MapItem.CameraType Type;
![]()
public enum CameraType
{
DOME = 0,
FIXCAMERA = 1,
}
}
![]()
FileStream stream ;
XmlSerializer serializer = new XmlSerializer(typeof(MapItems));
stream = new FileStream(xmlFileName, FileMode.Open);
MapItems mapItems1= (MapItems)serializer.Deserialize(stream);
xml格式
<?xml version="1.0"?>
<MapItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MapImgFile="鞍山新村站.jpg" IconResxFile="icons.resx" xmlns="http://www.gentek.com.cn/CommonLibs.UI.MapItems">
<Items>
<MapItem>
<Id>110</Id>
<Pos>
<X>350</X>
<Y>119</Y>
</Pos>
<Selected>false</Selected>
<ItemIcon>1</ItemIcon>
<Name>站厅设备走廊4</Name>
</MapItem>
</Items>
</MapItems>
2、存储
string fullFileName="directory/fileName.xml";
serializer = new XmlSerializer(typeof(MapItems));
stream = new FileStream(fullFileName, FileMode.OpenOrCreate);
serializer.Serialize(stream, mapItems1);
最后关闭stream:stream.Close();
三:Array排序
1
DirectoryInfo di = new DirectoryInfo(dataPath);
2
FileInfo[] xmlFiles = di.GetFiles("*.xml");
二、xml串行化
DirectoryInfo di = new DirectoryInfo(dataPath);2
FileInfo[] xmlFiles = di.GetFiles("*.xml");1、读入
[XmlRoot("MapItems", Namespace = "http://www.gentek.com.cn/CommonLibs.UI.MapItems", IsNullable = false)]
public class MapItems
{
[XmlAttribute]
public string IconResxFile;
[XmlArray("Items")]
public MapItem[] Items;
[XmlAttribute]
public string MapImgFile;
public MapItems();
}
public class MapItem
{
public Rectangle drawRect;
public string Id;
public bool isbig;
public bool isdrawRect;
public string m_Statement;
public Point Pos;
public bool Selected;
public MapItem.CameraType Type;
public enum CameraType
{
DOME = 0,
FIXCAMERA = 1,
}
}
FileStream stream ;
XmlSerializer serializer = new XmlSerializer(typeof(MapItems));
stream = new FileStream(xmlFileName, FileMode.Open);
MapItems mapItems1= (MapItems)serializer.Deserialize(stream);xml格式
<?xml version="1.0"?>
<MapItems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MapImgFile="鞍山新村站.jpg" IconResxFile="icons.resx" xmlns="http://www.gentek.com.cn/CommonLibs.UI.MapItems">
<Items>
<MapItem>
<Id>110</Id>
<Pos>
<X>350</X>
<Y>119</Y>
</Pos>
<Selected>false</Selected>
<ItemIcon>1</ItemIcon>
<Name>站厅设备走廊4</Name>
</MapItem>
</Items>
</MapItems>
string fullFileName="directory/fileName.xml";
serializer = new XmlSerializer(typeof(MapItems));
stream = new FileStream(fullFileName, FileMode.OpenOrCreate);
serializer.Serialize(stream, mapItems1);三:Array排序
1
public class myReverserClass : IComparer
2
{
3![]()
4
// Calls CaseInsensitiveComparer.Compare with the parameters reversed.
5
int IComparer.Compare(object xobj, object yobj)
6
{
7
MapItem m1 = (MapItem)xobj;
8
MapItem m2 = (MapItem)yobj;
9
int x = Int32.Parse(m1.Id.Replace(" ", ""), System.Globalization.NumberStyles.AllowHexSpecifier);
10
int y = Int32.Parse(m2.Id.Replace(" ", ""), System.Globalization.NumberStyles.AllowHexSpecifier);
11![]()
12
if (x > y)
13
return 1;
14
if (x < y)
15
return -1;
16
return 0;
17
}
18![]()
19
}
20![]()
21
IComparer myComparer = new myReverserClass();
22
MapItem[] items = mapItems.Items;
23
Array.Sort(items, myComparer);
public class myReverserClass : IComparer2
{3

4
// Calls CaseInsensitiveComparer.Compare with the parameters reversed.5
int IComparer.Compare(object xobj, object yobj)6
{7
MapItem m1 = (MapItem)xobj;8
MapItem m2 = (MapItem)yobj;9
int x = Int32.Parse(m1.Id.Replace(" ", ""), System.Globalization.NumberStyles.AllowHexSpecifier);10
int y = Int32.Parse(m2.Id.Replace(" ", ""), System.Globalization.NumberStyles.AllowHexSpecifier);11

12
if (x > y)13
return 1;14
if (x < y)15
return -1;16
return 0;17
}18

19
}20

21
IComparer myComparer = new myReverserClass();22
MapItem[] items = mapItems.Items;23
Array.Sort(items, myComparer);

浙公网安备 33010602011771号