Проверка существования директории

C#:
Проверка существования директории

Как:

Вот как можно проверить наличие каталога с использованием пространства имен System.IO:

using System;
using System.IO;

class Program
{
    static void Main()
    {
        string directoryPath = @"C:\exampleFolder";

        if (Directory.Exists(directoryPath))
        {
            Console.WriteLine("Каталог существует.");
        }
        else
        {
            Console.WriteLine("Каталог не существует.");
        }
    }
}

Пример вывода:

Каталог существует.

Или, если каталог не найден:

Каталог не существует.

Подробнее

Пространство имен System.IO существует с начальных дней .NET, предоставляя инструменты для работы с файлами и каталогами. При проверке наличия каталога под капотом оно использует системный API для запроса файловой системы – операция, как правило, не требует много системных ресурсов.

Также есть класс DirectoryInfo, предлагающий объектно-ориентированный способ взаимодействия с каталогами. Он может быть медленнее для простой проверки наличия, поскольку создает объект с большим объемом данных, чем просто состояние существования, но он удобен для более сложных операций.

DirectoryInfo dirInfo = new DirectoryInfo(directoryPath);
if (dirInfo.Exists)
{
    // Делаем что-то с каталогом.
}

Перед System.IO разработчики могли использовать специфичные для платформы API или обращаться к командным утилитам для проверки существования каталога, что было грязным делом и чревато проблемами. System.IO красиво абстрагировало это.

Важно отметить, что проверки на существование могут подвергаться состоянию гонки. То, что каталог существует в момент проверки, не гарантирует его существование через мгновение, когда вы попытаетесь использовать его, из-за возможных изменений со стороны других процессов или пользователей.

См. также