`SearchOption` — это перечисление (enum), используемое в методах класса `Directory` в .NET, таких как `Directory.GetFiles`, `Directory.GetDirectories` и других. Оно определяет, следует ли выполнять поиск только в текущей директории или же во всех поддиректориях рекурсивно. Вот два основных значения этого перечисления: 1. **TopDirectoryOnly**: Поиск будет выполняться только в указанной директории. Поддиректории не будут учтены. 2. **AllDirectories**: Поиск будет выполнен в указанной директории и во всех её поддиректориях рекурсивно. ### Пример: ```csharp // Поиск только в текущей директории string[] files1 = Directory.GetFiles("/path/to/directory", "*.txt", SearchOption.TopDirectoryOnly); // Поиск в текущей директории и всех поддиректориях string[] files2 = Directory.GetFiles("/path/to/directory", "*.txt", SearchOption.AllDirectories); ``` ### Производительность: - **TopDirectoryOnly**: Быстрее, так как обходит только одну директорию. Оптимально, если вам известно, что нужные файлы находятся именно в этой директории. - **AllDirectories**: Может быть значительно медленнее, особенно если у вас есть глубокая иерархия директорий или большое количество файлов. Рекурсивный обход может привести к большему времени выполнения и большему использованию ресурсов. Используйте `AllDirectories` только если действительно необходимо искать файлы во всех поддиректориях. Если вы знаете структуру директорий или ищете файлы только в одной конкретной директории, использование `TopDirectoryOnly` будет более производительным.