Как построить XML файл из списка c URL директорий и файлов
Друзья, у меня есть очень большая проблема!
У меня есть список с собранными рекурсивно директориями и файлами.
Т.е. список выглядит примерно так:
1.C:\Downloads
2.C:\Downloads\Files
3.C:\Downloads\Files\Movie.mkv
4.C:\Downloads\Torrents
5.C:\Downloads\Torrents\rrrr.txt
6.C:\Downloads\Torrents\zzzzzzz.txt
...
Мне нужно из этого списка сделать дерево-XML файл с параметрами каждой папки и файла.
у меня это выглядит вот так:
[ПРИКРЕПЛЁННЫЙ СНИМОК]
Но мне нужно,чтобы каждый файл(или поддиректория) вкладывалась в главную директорию.
Как этого добиться?
Буду Вам очень признателен за любую помощь!
Мой код:
Код:
public void ToXML()
{
try
{
XmlTextWriter textWritter = new XmlTextWriter(pathXML, Encoding.UTF8);
textWritter.WriteStartDocument();
textWritter.WriteComment("File Name = " + Optimizer.GetPathName(pathXML));
textWritter.WriteStartElement("MAIN_DIRECTORY");
textWritter.WriteEndElement();
textWritter.Close();
XmlDocument document = new XmlDocument();
document.Load(pathXML);
foreach (var t in DFDlist)
{
string[] d = new string[t.GetData().Count];
for (int i = 0; i < t.GetData().Count; i++)
d[i] = t.GetData()[i];
XmlNode element = document.CreateElement(d[0].ToUpper());
document.DocumentElement.AppendChild(element);//// указываем родителя
XmlAttribute attribute = document.CreateAttribute("Name");//// создаём атрибут
attribute.Value = d[1];//// устанавливаем значение атрибута
element.Attributes.Append(attribute);//// добавляем атрибут
XmlNode subElement1 = document.CreateElement("SIZE");//// даём имя
subElement1.InnerText = d[2];//// и значение
element.AppendChild(subElement1);//// и указываем кому принадлежит
XmlNode subElement2 = document.CreateElement("EXTENSION");
subElement2.InnerText = d[3];
element.AppendChild(subElement2);
XmlNode subElement3 = document.CreateElement("CREATED");
subElement3.InnerText = d[4];
element.AppendChild(subElement3);
XmlNode subElement4 = document.CreateElement("MODIFIED");
subElement4.InnerText = d[5];
element.AppendChild(subElement4);
XmlNode subElement5 = document.CreateElement("LAST_ACCESS");
subElement5.InnerText = d[6];
element.AppendChild(subElement5);
XmlNode subElement6 = document.CreateElement("ATTRIBUTE");
subElement6.InnerText = d[7];
element.AppendChild(subElement6);
XmlNode subElement7 = document.CreateElement("OWNER");
subElement7.InnerText = d[8];
element.AppendChild(subElement7);
}
document.Save(pathXML);//сохраняем
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
{
try
{
XmlTextWriter textWritter = new XmlTextWriter(pathXML, Encoding.UTF8);
textWritter.WriteStartDocument();
textWritter.WriteComment("File Name = " + Optimizer.GetPathName(pathXML));
textWritter.WriteStartElement("MAIN_DIRECTORY");
textWritter.WriteEndElement();
textWritter.Close();
XmlDocument document = new XmlDocument();
document.Load(pathXML);
foreach (var t in DFDlist)
{
string[] d = new string[t.GetData().Count];
for (int i = 0; i < t.GetData().Count; i++)
d[i] = t.GetData()[i];
XmlNode element = document.CreateElement(d[0].ToUpper());
document.DocumentElement.AppendChild(element);//// указываем родителя
XmlAttribute attribute = document.CreateAttribute("Name");//// создаём атрибут
attribute.Value = d[1];//// устанавливаем значение атрибута
element.Attributes.Append(attribute);//// добавляем атрибут
XmlNode subElement1 = document.CreateElement("SIZE");//// даём имя
subElement1.InnerText = d[2];//// и значение
element.AppendChild(subElement1);//// и указываем кому принадлежит
XmlNode subElement2 = document.CreateElement("EXTENSION");
subElement2.InnerText = d[3];
element.AppendChild(subElement2);
XmlNode subElement3 = document.CreateElement("CREATED");
subElement3.InnerText = d[4];
element.AppendChild(subElement3);
XmlNode subElement4 = document.CreateElement("MODIFIED");
subElement4.InnerText = d[5];
element.AppendChild(subElement4);
XmlNode subElement5 = document.CreateElement("LAST_ACCESS");
subElement5.InnerText = d[6];
element.AppendChild(subElement5);
XmlNode subElement6 = document.CreateElement("ATTRIBUTE");
subElement6.InnerText = d[7];
element.AppendChild(subElement6);
XmlNode subElement7 = document.CreateElement("OWNER");
subElement7.InnerText = d[8];
element.AppendChild(subElement7);
}
document.Save(pathXML);//сохраняем
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}