C#:
Sjekker om en mappe eksisterer
Hvordan:
Bruke System.IO
C# tilbyr System.IO
-navnerommet som inneholder Directory
-klassen, som tilbyr en direkte måte å sjekke for eksistensen av en mappe gjennom Exists
-metoden.
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\EksempelMappe";
// Sjekk om mappen eksisterer
bool directoryExists = Directory.Exists(directoryPath);
// Skriv ut resultatet
Console.WriteLine("Mappe eksisterer: " + directoryExists);
}
}
Eksempel på utskrift:
Mappe eksisterer: False
I tilfelle mappen faktisk eksisterer på banen C:\EksempelMappe
, vil utskriften være True
.
Bruke System.IO.Abstractions for enhetstesting
Når det kommer til å gjøre koden din enhetstestbar, spesielt når den samhandler med filsystemet, er pakken System.IO.Abstractions
et populært valg. Den lar deg abstrahere og mocke filsystemoperasjoner i testene dine. Her er hvordan du kan sjekke for en mappe sin eksistens ved å bruke denne tilnærmingen:
Først, sørg for at du har installert pakken:
Install-Package System.IO.Abstractions
Deretter kan du injisere et IFileSystem
i klassen din og bruke det til å sjekke om en mappe eksisterer, noe som tillater enklere enhetstesting.
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:\EksempelMappe";
bool directoryExists = program.CheckDirectoryExists(directoryPath);
Console.WriteLine("Mappe eksisterer: " + directoryExists);
}
}
Eksempel på utskrift:
Mappe eksisterer: False
Denne tilnærmingen skiller applikasjonslogikken din fra direkte tilgang til filsystemet, noe som gjør koden din mer modulær, testbar og vedlikeholdbar.