Реализовать поиск в указанном каталоге всех файлов во всех поддиректориях и сформировать 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);
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.6 из 5
Похожие ответы