ตรวจสอบว่ามีไดเร็กทอรีหรือไม่

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

วิธีการนี้ทำให้โลจิกของแอปพลิเคชันของคุณถูกแยกออกจากการเข้าถึงระบบไฟล์โดยตรง ทำให้โค้ดของคุณมีโครงสร้างที่ดีขึ้น สามารถทดสอบได้ และรักษาได้ง่ายขึ้น