Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать XML в нужном формате - C#
Формулировка задачи:
Искать в указанном каталоге все файлы во всех поддиректориях и формировать XML в нужном формате.
XML записать в директорию рядом с программой.
Есть мысли по поводу с откуда начать?
Хелп
Решение задачи: «Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать XML в нужном формате»
textual
Листинг программы
using System;
using System.IO;
using System.Xml;
static class Program
{
static void FilesWalk(DirectoryInfo root, XmlWriter writer)
{
FileInfo[] files = null;
DirectoryInfo[] subDirs = null;
try
{
files = root.GetFiles("*.*");
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine(e.Message);
}
catch (DirectoryNotFoundException e)
{
Console.WriteLine(e.Message);
}
if (files != null)
{
foreach (FileInfo fi in files)
{
writer.WriteStartElement("File");
writer.WriteElementString("FullName", fi.FullName);
writer.WriteElementString("LastWriteTime", fi.LastWriteTime.ToString());
writer.WriteEndElement();
// Console.WriteLine(fi.FullName);
}
subDirs = root.GetDirectories();
foreach (DirectoryInfo dirInfo in subDirs)
{
FilesWalk(dirInfo, writer);
}
}
}
static void Main(string[] args)
{
// директория для чтения файлов
var dirPath = @"C:/Users/User/Documents";
// куда соранять xml
var xmlPath = Path.GetDirectoryName(Environment.GetCommandLineArgs()[0]);
DirectoryInfo dirInfo = new DirectoryInfo(dirPath);
XmlWriterSettings settings = new XmlWriterSettings { Indent = true };
using (XmlWriter writer = XmlWriter.Create(xmlPath + "\\FileList.xml", settings))
{
writer.WriteStartDocument();
writer.WriteStartElement("Files");
// рекурсивный обход
FilesWalk(dirInfo, writer);
writer.WriteEndElement();
writer.WriteEndDocument();
}
Console.ReadKey(true);
}
}