遍历文件夹所有子文件夹&文件并写入xml文档
输入:一个文件夹的绝对地址
输出:xml文档
要求:当是文件夹写入<文件夹的名字 Arr="文件夹">
当是文件写入<文件名的名字 Arr="文件" length="这里输入文件的大小" extension="这里输入文件的扩展名" >
我要的是代码,我自己也试过多次了还是不成功。只能做一会伸手党。
我先贴我的代码
public void dosth()
{
DirectoryInfo tempDi = new DirectoryInfo(directoryName);//directoryName文件夹的绝对地址
XmlElement xe = xDoc.CreateElement(tempDi.Name);
xe.SetAttribute("Arr", "文件夹");
xDoc.AppendChild(xe);
dos(tempDi);//递归该文件夹下面的目录
xDoc.Save(xmlName);
}
private void dos(DirectoryInfo dis)
{
if ((dis.GetDirectories()).Length != 0)//存在子文件夹
{
foreach (DirectoryInfo di in dis.GetDirectories())
{
XmlNode root = xDoc.SelectSingleNode(dis.Name);
XmlElement xe = xDoc.CreateElement(di.Name);
xe.SetAttribute("Arr", "文件夹");
root.AppendChild(xe);
dos(di);//递归
}
}
else//dis没有子文件夹,将dis下所有文件读入xml文档
{
FileInfo[] files = dis.GetFiles();
XmlNode root = xDoc.SelectSingleNode(dis.Name);//这里出问题了,不知道怎么找回dis这个node,我调试的时候root=null,但是xml文档确实存在请看下面的xml文档
foreach (FileInfo fi in files)
{
XmlElement newxe = xDoc.CreateElement(fi.Name);
newxe.SetAttribute("Arr", "文件");
newxe.SetAttribute("Length", fi.Length.ToString());
newxe.SetAttribute("extension", fi.Extension);
root.AppendChild(newxe);
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
- <!-- 文件夹
-->
- <豌豆夹 Arr="文件夹">
<Config Arr="文件夹" /> //要找到这个Node
</豌豆夹>
------解决方案--------------------或者这么问这个XML文档
<?xml version="1.0" encoding="utf-8" ?>
- <!-- 文件夹
-->
- <豌豆夹 >
<Config>
<Sth1>
<Nth/>
</Sth1>
<Sth2>
<Nth2/>
</Sth2>
</Config>
</豌豆夹>
我怎么往<Sth1>里面添加子元素呢
------解决方案--------------------解决了~结贴