Как реализовать рекурсивный поиск файлов в C#?

Как можно рекурсивно найти файлы в указанной папке по расширению и вернуть `null`, если таковых файлов нет? Проверка наличия файлов по расширению в заданной папке уже реализована в коде? <br/> <pre><code class="cs">var _corefiles = Directory.EnumerateFiles(_sourcesTMP, "*.core", SearchOption.AllDirectories)?.ToString();
var _streamfiles = Directory.EnumerateFiles(_sourcesTMP, "*.stream", SearchOption.AllDirectories)?.ToString();
if (_corefiles == null &amp;&amp; _streamfiles == null)
{
    return;
}</code></pre>
  • 30 апреля 2024 г. 23:00
Ответы на вопрос 1
Для реализации рекурсивного поиска файлов в C# можно воспользоваться методом Directory.GetFiles() с указанием параметра SearchOption.AllDirectories. 

Пример решения задачи:

```c#
using System;
using System.IO;

class Program
{
    static void Main()
    {
        string folderPath = @"путь_к_папке";

        string[] coreFiles = Directory.GetFiles(folderPath, "*.core", SearchOption.AllDirectories);
        string[] streamFiles = Directory.GetFiles(folderPath, "*.stream", SearchOption.AllDirectories);

        if (coreFiles.Length == 0 && streamFiles.Length == 0)
        {
            Console.WriteLine("Файлы не найдены");
        }
        else
        {
            // обработка найденных файлов
            foreach (var file in coreFiles)
            {
                Console.WriteLine($"Найден файл с расширением .core: {file}");
            }
            foreach (var file in streamFiles)
            {
                Console.WriteLine($"Найден файл с расширением .stream: {file}");
            }
        }
    }
}
```

В этом примере, после выполнения поиска файлов по указанным расширениям в заданной папке, происходит проверка наличия найденных файлов. Если файлы не найдены, выводится соответствующее сообщение. Если файлы найдены, происходит вывод их путей в консоль.
Похожие вопросы