Перевірка наявності директорії

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

Як це зробити:

Використовуючи System.IO

C# надає простір імен System.IO, який містить клас Directory, що пропонує прямий спосіб перевірки існування директорії через метод Exists.

using System;
using System.IO;

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

        // Перевіряємо, чи існує директорія
        bool directoryExists = Directory.Exists(directoryPath);

        // Виводимо результат
        Console.WriteLine("Directory exists: " + directoryExists);
    }
}

Приклад виводу:

Directory exists: False

У випадку, якщо директорія дійсно існує за шляхом C:\ExampleDirectory, вивід буде True.

Використання System.IO.Abstractions для модульного тестування

Коли справа доходить до того, щоб зробити ваш код придатним для модульного тестування, особливо коли він взаємодіє з файловою системою, пакет System.IO.Abstractions є популярним вибором. Він дозволяє вам абстрагуватися та імітувати операції з файловою системою у ваших тестах. Ось як ви могли б перевірити існування директорії, використовуючи цей підхід:

Спочатку, переконайтеся, що ви встановили пакет:

Install-Package System.IO.Abstractions

Після цього, ви можете інжектити IFileSystem у ваш клас та використовувати його для перевірки існування директорії, що дозволяє легше проводити модульне тестування.

using System;
using System.IO.Abstractions;

class Program
{
    private readonly IFileSystem _fileSystem;

    public Program(IFileSystem fileSystem)
    {
        _fileSystem = fileSystem;
    }

    public bool CheckDirectoryExists(string directoryPath)
    {
        return _fileSystem.Directory.Exists(directoryPath);
    }

    static void Main()
    {
        var fileSystem = new FileSystem();
        var program = new Program(fileSystem);

        string directoryPath = @"C:\ExampleDirectory";
        bool directoryExists = program.CheckDirectoryExists(directoryPath);

        Console.WriteLine("Directory exists: " + directoryExists);
    }
}

Приклад виводу:

Directory exists: False

Цей підхід розв’язує вашу програмну логіку від прямого доступу до файлової системи, роблячи ваш код більш модульним, придатним для тестування та підтримуваним.