Tarkistetaan, onko hakemisto olemassa

C#:
Tarkistetaan, onko hakemisto olemassa

Kuinka:

Käyttäen System.IO

C# tarjoaa System.IO nimiavaruuden, joka sisältää Directory luokan, tarjoten suoran tavan tarkistaa hakemiston olemassaolo Exists metodin avulla.

using System;
using System.IO;

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

        // Tarkista, onko hakemisto olemassa
        bool directoryExists = Directory.Exists(directoryPath);

        // Tulosta tulos
        Console.WriteLine("Hakemisto on olemassa: " + directoryExists);
    }
}

Esimerkkituloste:

Hakemisto on olemassa: False

Jos hakemisto todellakin on olemassa polussa C:\ExampleDirectory, tuloste on True.

Käyttäen System.IO.Abstractions yksikkötestaukseen

Kun kyse on koodisi yksikkötestattavuuden mahdollistamisesta, erityisesti kun se vuorovaikuttaa tiedostojärjestelmän kanssa, System.IO.Abstractions paketti on suosittu valinta. Se mahdollistaa tiedostojärjestelmän toimintojen abstrahoinnin ja mockaamisen testeissäsi. Tässä on miten voit tarkistaa hakemiston olemassaolon käyttäen tätä lähestymistapaa:

Ensin, varmista että olet asentanut paketin:

Install-Package System.IO.Abstractions

Sitten, voit injektoida IFileSystem-rajapinnan luokkaasi ja käyttää sitä tarkistamaan, onko hakemisto olemassa, mikä mahdollistaa helpomman yksikkötestauksen.

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("Hakemisto on olemassa: " + directoryExists);
    }
}

Esimerkkituloste:

Hakemisto on olemassa: False

Tämä lähestymistapa erottaa sovelluslogiikkasi suorasta pääsystä tiedostojärjestelmään, tehden koodistasi modulaarisemman, testattavamman ja ylläpidettävämmän.