C#:
Sprawdzanie, czy katalog istnieje
Jak to zrobić:
Używając System.IO
C# zapewnia przestrzeń nazw System.IO
, która zawiera klasę Directory
, oferującą bezpośredni sposób na sprawdzenie istnienia katalogu za pomocą metody Exists
.
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\ExampleDirectory";
// Sprawdź, czy katalog istnieje
bool directoryExists = Directory.Exists(directoryPath);
// Wydrukuj wynik
Console.WriteLine("Katalog istnieje: " + directoryExists);
}
}
Przykładowy wynik:
Katalog istnieje: False
W przypadku, gdy katalog istnieje pod ścieżką C:\ExampleDirectory
, wynik będzie True
.
Używając System.IO.Abstractions do testów jednostkowych
Gdy chodzi o możliwość testowania jednostkowego kodu, szczególnie gdy wchodzi on w interakcję z systemem plików, pakiet System.IO.Abstractions
jest popularnym wyborem. Pozwala on abstrahować i udawać operacje na systemie plików w testach. Oto jak można sprawdzić istnienie katalogu, korzystając z tego podejścia:
Najpierw upewnij się, że zainstalowałeś pakiet:
Install-Package System.IO.Abstractions
Następnie możesz wstrzyknąć IFileSystem
do swojej klasy i używać go do sprawdzania, czy katalog istnieje, co ułatwia testowanie jednostkowe.
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("Katalog istnieje: " + directoryExists);
}
}
Przykładowy wynik:
Katalog istnieje: False
To podejście rozdziela logikę aplikacji od bezpośredniego dostępu do systemu plików, czyniąc kod bardziej modułowym, testowalnym i łatwym do utrzymania.