C#:
Vérifier si un répertoire existe
Comment :
Utilisation de System.IO
C# fournit l’espace de noms System.IO
qui contient la classe Directory
, offrant une manière directe de vérifier l’existence d’un répertoire grâce à la méthode Exists
.
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = @"C:\ExampleDirectory";
// Vérifier si le répertoire existe
bool directoryExists = Directory.Exists(directoryPath);
// Imprimer le résultat
Console.WriteLine("Le répertoire existe : " + directoryExists);
}
}
Exemple de sortie :
Le répertoire existe : False
Dans le cas où le répertoire existe bien au chemin C:\ExampleDirectory
, la sortie sera True
.
Utilisation de System.IO.Abstractions pour les tests unitaires
Quand il s’agit de rendre votre code testable unitairement, surtout lorsqu’il interagit avec le système de fichiers, le package System.IO.Abstractions
est un choix populaire. Il vous permet d’abstraire et de simuler les opérations sur le système de fichiers dans vos tests. Voici comment vous pourriez vérifier l’existence d’un répertoire en utilisant cette approche :
D’abord, assurez-vous d’avoir installé le package :
Install-Package System.IO.Abstractions
Ensuite, vous pouvez injecter un IFileSystem
dans votre classe et l’utiliser pour vérifier si un répertoire existe, ce qui permet des tests unitaires plus aisés.
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("Le répertoire existe : " + directoryExists);
}
}
Exemple de sortie :
Le répertoire existe : False
Cette approche découple la logique de votre application de l’accès direct au système de fichiers, rendant votre code plus modulaire, testable et maintenable.