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
красиво абстрагировало это.
Важно отметить, что проверки на существование могут подвергаться состоянию гонки. То, что каталог существует в момент проверки, не гарантирует его существование через мгновение, когда вы попытаетесь использовать его, из-за возможных изменений со стороны других процессов или пользователей.