一.XML文件
简介:XML可拓展标记语言,设计被用来传输和保存数据
结构:是一个树形结构,必须有一个根节点
XML文件与HTMl的区别
1.XML 和 HTML 为不同的目的而设计,它们不是同一种东西。
2.XML 被设计为传输和存储数据,其主要的作用是数据的内容。
3.HTML 被设计用来显示数据,其主要的作用是数据的外观。
4.HTML 旨在显示信息,而 XML 旨在传输信息。
5.XML是纯文本,HTML是超文本
语法规则
1.所有的XMl文件必须要有关闭的标签
2.XML文件对的大小写敏感
3.XML文件必须具有一个根节点
4.XML文件必须正确的嵌套
5.XML 的属性值须加引号
XML文件的读取
1.首先new一个XmlDocument的对象
XmlDocument xmlDoc=new XmlDocument();
2.加载XML文件
XmlDoc=Load(“路径”);
3.得到根节点
XmlNode/XmlElement node=xmlDoc.DocumentElemet;
其中XmlNode为抽象类,XmlElement为它的子类
4.循环遍历子节点
foreach(XmlNode node2 in node.chidNodes){}
示例;
public TybeBchannels() { }
public override void FethProgram()
{
XmlDocument xmlD = new XmlDocument();
try
{
xmlD.Load(base.Path);
}
catch (Exception )
{
System.Windows.Forms.MessageBox.Show(base.TvChannel + "的清单找不到!");
return;
}
if (ProgramList == null)
{
ProgramList = new List<ProgramList>();
}
XmlNode xNode = xmlD.DocumentElement;
foreach (XmlNode node in xNode.ChildNodes)
{
foreach (XmlNode subNode in node.ChildNodes)
{
ProgramList pro = new ProgramList();
pro.PlayTime = subNode["playTime"].InnerText;
pro.Name = subNode["name"].InnerText;
pro.Path = subNode["path"].InnerText;
base.ProgramList.Add(pro);
}
}
}
树形控件TreeView
事件: | 节点被选中的事件(AfterSelect) | |
---|---|---|
属性: | 节点的文本(Text);隐藏域(Tag);所有子节点(Nodes);添加子节点(Add);深度,位于第几层Level); | (下标,位于当前层的第几个(Index) |
二.文件的操作
命名空间:System.IO
文件的读写操作
1…创建文件流对象
FileStream stream =new FileStream (String 路径,FileMode的打开方式); FileStream stream = new FileStream(“文件路径”, 文件的打开方式:FileMode);
FileMode是enum的枚举,是文件的打开方法;
枚举:约定一个变量的值的范围
CreateNew | 创建新的文件,如果文件已经存在会异常 |
---|---|
Create | 创建新文件,文件如果已经存在了直接打开已经存在的文件 |
Open | 打开一个已经存在的文件,如果文件不存在会报错 |
OpenOrCreat | [Open打开,create创建,or或者]文件存在则打开已经存在的文件;文件不存在先创建一个新的文件,再打开 |
Truncate | 文件存在,先把里面的内容删除,然后再往里面写内容;文件不存在,异常 |
Append | Append追加,打开一个已经存在的文件,在最后添加内容;如果文件不存在,则异常 |
2、创建阅读器/写入器
1.阅读器:StreamReader
(1)创建对象:
StreamReader sr= new StreamReader(文件流);
(2)StreamReader常用方法:
ReadLine(): 读取文件一行
ReadToEnd():读取到文件的末尾
Close()关闭
2.写入器
(1)创建对象:
StreamWriter sw = new StreamWriter(文件流);
(2)常用方法:
Write():输出后不换行
WriteLine():输出后换行
Close():关闭
3、执行读写操作
4、关闭阅读器/写入器
5、关闭文件流
static和非static类的区别
<1>.static只能包含静态成员;非static可以包含非静态成员
<2>.static类只能通过类名去调用成员
<3>.static类不能实例化,static类不能够包含构造函数
文件的操作
File类:用于对文件进行操作
1.File类的常用方法:
属性:Exists(string path):用于检查指定文件是否存在
Copy(string sourceFilePath,string destinationFilePath):指定路径的源文件的内容复制到目标文件中,如 果目标文件不存在,在指定路径新建一个文件
Move(string sourceFilePath,string destinationFilePath):将指定文件移到一个新的路径
Delete(string path):删除指定的文件,如果指定的文件不存在,不引发异常
2.FileInfo类:可以完成对文件的的基本操作
属性:Exists:用于检查指定文件是否存在,返回一个布尔值
Extension:获取表示文件扩展名部分的字符串
Name:获取文件名
FullName:获取目录或文件的完整目录
方法:CopyTo(string):将现有文件复制到新文件,不允许覆盖现有文件
Delete():永久删除文件
MoveTo(string):将指定文件移到新位置
目录的操作
1.Directory类用于对文件夹进行操作
属性:Exists(string path):用于检查指定文件夹在磁盘上是否存在
Move(string sourceDirName,string destDirName):用于将文件或目录及其内容移到新位置
Delete(string path,bool recursive):删除指定目录,如果recursive值为true,删除子目录中的所有目录内 容
CopyTo(原来路径,新路径):将现有文件复制到新文件,不允许覆盖现有文件
Delete():永久删除文件
String[] GetDirectories(path):获取所有子目录
String[] GetFiles(path):获取所有子文件
2.DirectoryInfo类与Directory类功能类似,可以完成对文件夹的基本操作
属性:Exists:判断是否存在;
Name:名字
方法:MoveTo(newPath):移到
GetDirectories():该方法返回当前目录对象数组
GetFiles():该方法返回当前目录下的文件列表