בדיקה אם ספרייה קיימת

C#:
בדיקה אם ספרייה קיימת

איך לעשות:

באמצעות System.IO

C# מספקת את ה-namespace של System.IO שמכיל את המחלקה Directory, המציעה דרך ישירה לבדוק אם ספרייה קיימת באמצעות המתודה Exists.

using System;
using System.IO;

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

        // בדוק אם הספרייה קיימת
        bool directoryExists = Directory.Exists(directoryPath);

        // הדפס את התוצאה
        Console.WriteLine("Directory exists: " + directoryExists);
    }
}

דוגמה לפלט:

Directory exists: False

במקרה שהספרייה כן קיימת בנתיב C:\ExampleDirectory, הפלט יהיה True.

באמצעות System.IO.Abstractions לבדיקות יחידה

כאשר מדובר בהפיכת הקוד שלך לכזה שניתן לבדוקות יחידה, במיוחד כאשר הוא מתקשר עם מערכת הקבצים, החבילה System.IO.Abstractions היא בחירה פופולרית. היא מאפשרת לך להפשיט ולהתחזות לפעולות מערכת קבצים בבדיקות שלך. הנה איך אפשר לבדוק אם ספרייה קיימת באמצעות התקרבות זו:

ראשית, וודא שהתקנת את החבילה:

Install-Package System.IO.Abstractions

לאחר מכן, אתה יכול להזריק IFileSystem לתוך המחלקה שלך ולהשתמש בו כדי לבדוק אם ספרייה קיימת, מה שמאפשר בדיקות יחידה קלות יותר.

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("Directory exists: " + directoryExists);
    }
}

דוגמה לפלט:

Directory exists: False

התקרבות זו מפרידה בין לוגיקת היישום שלך לבין הגישה הישירה למערכת הקבצים, ובכך הופכת את הקוד שלך ליותר מודולרי, ניתן לבדיקות יחידה ולתחזוקה.