Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

จะรับไดเร็กทอรีและไดเร็กทอรีย่อยทั้งหมดภายในพาธใน C # ได้อย่างไร?


ในการรับไดเร็กทอรี C# ให้เมธอด Directory.GetDirectories เมธอด Directory.GetDirectories จะคืนค่าชื่อของไดเร็กทอรีย่อย (รวมถึงพาธ) ที่ตรงกับรูปแบบการค้นหาที่ระบุในไดเร็กทอรีที่ระบุ และอาจค้นหาไดเร็กทอรีย่อย

ในตัวอย่างด้านล่าง * คือการจับคู่อักขระศูนย์หรือมากกว่าในตำแหน่งนั้น SearchOption TopDirectoryOnly รับเฉพาะไดเร็กทอรีระดับบนสุด และ SearchOption AllDirectories รับไดเร็กทอรีด้านบนและไดเร็กทอรีย่อยทั้งหมด

หมายเหตุ: rootPath จะเป็น rootPath ระบบของคุณ ดังนั้นให้สร้างโฟลเดอร์ทดสอบและใช้ rootPath อย่างเหมาะสม

ตัวอย่างที่ 1

static void Main (string[] args) {
   string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
   string[] dirs = Directory.GetDirectories(rootPath, "*", SearchOption.TopDirectoryOnly);

   foreach (string dir in dirs) {
      Console.WriteLine (dir);
   }
   Console.ReadLine ();
}

ผลลัพธ์

C:\Users\Koushik\Desktop\TestFolder\TestFolderMain
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2

ตัวอย่างที่ 2

static void Main (string[] args) {
   string rootPath = @"C:\Users\Koushik\Desktop\TestFolder";
   string[] dirs = Directory.GetDirectories(rootPath, "*", SearchOption.AllDirectories);

   foreach (string dir in dirs) {
      Console.WriteLine (dir);
   }
   Console.ReadLine ();
}

ผลลัพธ์

C:\Users\Koushik\Desktop\TestFolder\TestFolderMain
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 1
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2
C:\Users\Koushik\Desktop\TestFolder\TestFolderMain 2\TestFolderMainSubDirectory