Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать 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);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д