C#:
Überprüfung, ob ein Verzeichnis existiert
Wie zu:
Unter Verwendung von System.IO
C# stellt den System.IO
Namespace bereit, der die Directory
Klasse enthält und somit eine direkte Möglichkeit bietet, die Existenz eines Verzeichnisses über die Exists
Methode zu prüfen.
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\ExampleDirectory";
// Prüfen, ob das Verzeichnis existiert
bool directoryExists = Directory.Exists(directoryPath);
// Das Ergebnis ausgeben
Console.WriteLine("Verzeichnis existiert: " + directoryExists);
}
}
Beispielausgabe:
Verzeichnis existiert: False
Falls das Verzeichnis unter dem Pfad C:\ExampleDirectory
tatsächlich existiert, würde die Ausgabe True
sein.
Verwendung von System.IO.Abstractions für Unit-Tests
Wenn es darum geht, Ihren Code unit-testbar zu machen, besonders wenn er mit dem Dateisystem interagiert, ist das System.IO.Abstractions
Paket eine beliebte Wahl. Es ermöglicht Ihnen, Dateisystemoperationen in Ihren Tests zu abstrahieren und zu mocken. Hier sehen Sie, wie Sie auf diese Weise die Existenz eines Verzeichnisses überprüfen können:
Zuerst sollten Sie sicherstellen, dass Sie das Paket installiert haben:
Install-Package System.IO.Abstractions
Danach können Sie ein IFileSystem
in Ihre Klasse injizieren und es verwenden, um zu prüfen, ob ein Verzeichnis existiert, was das Unit-Testing erleichtert.
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("Verzeichnis existiert: " + directoryExists);
}
}
Beispielausgabe:
Verzeichnis existiert: False
Dieser Ansatz entkoppelt Ihre Anwendungslogik vom direkten Dateisystemzugriff und macht Ihren Code modularer, testbarer und wartbarer.