static void GetDirectoryItemsWithXmlWriter(string path, XmlWriter writer)
{
var dirInfo = new DirectoryInfo(path);
var files = dirInfo.GetFiles();
var subdirs = dirInfo.GetDirectories();
writer.WriteStartElement("dir");
writer.WriteStartAttribute("name");
writer.WriteValue(dirInfo.Name);
writer.WriteEndAttribute();
foreach (var file in files)
{
writer.WriteStartElement("file");
writer.WriteStartAttribute("name");
writer.WriteValue(file.Name);
writer.WriteEndAttribute();
writer.WriteEndElement();
}
foreach (var dir in subdirs)
{
GetDirectoryItemsWithXmlWriter(dir.FullName, writer);
}
writer.WriteEndElement();
}