Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C#

C# में पथ के अंदर सभी डायरेक्टरीज़ और सब-डायरेक्टरीज़ कैसे प्राप्त करें

डायरेक्टरीज़ प्राप्त करने के लिए C# Directory.GetDirectories मेथड प्रदान करता है। Directory.GetDirectories मेथड निर्दिष्ट डायरेक्टरी में निर्दिष्ट खोज पैटर्न से मेल खाने वाले सबडायरेक्टरीज़ के नाम (उनके पथ सहित) लौटाता है, और वैकल्पिक रूप से सबडायरेक्टरीज़ को खोजता है।

नीचे दिए गए उदाहरण में * उस स्थिति में शून्य या अधिक वर्णों से मेल खाता है।

  • SearchOption.TopDirectoryOnly - केवल टॉप डायरेक्टरीज़ प्राप्त करता है
  • SearchOption.AllDirectories - सभी टॉप डायरेक्टरीज़ और सब डायरेक्टरीज़ प्राप्त करता है
नोट: 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

उन्नत: EnumerateDirectories (मेमोरी कुशल)

// .NET Core 2.1+ / .NET Framework 4.0+
// आलसी मूल्यांकन - बड़ी डायरेक्टरी संरचनाओं के लिए बेहतर
foreach (string dir in Directory.EnumerateDirectories(rootPath, "*", SearchOption.AllDirectories))
{
    Console.WriteLine(dir);
}

// फिल्टर के साथ
var netDirs = Directory.EnumerateDirectories(rootPath, "*.net*", SearchOption.AllDirectories);

डायरेक्टरी जानकारी के साथ

var dirInfo = new DirectoryInfo(rootPath);

foreach (var dir in dirInfo.EnumerateDirectories("*", SearchOption.AllDirectories))
{
    Console.WriteLine($"Name: {dir.Name}");
    Console.WriteLine($"Full Path: {dir.FullName}");
    Console.WriteLine($"Created: {dir.CreationTime}");
    Console.WriteLine($"Attributes: {dir.Attributes}");
    Console.WriteLine("---");
}

आम पैटर्न

GetDirectories(path, "*", TopDirectoryOnly)GetDirectories(path, "*", AllDirectories)GetDirectories(path, "Bin*", AllDirectories)EnumerateDirectories(...)new DirectoryInfo(path).EnumerateDirectories()
आवश्यकताकोड
केवल तत्काल सबडायरेक्टरीज़
सभी सबडायरेक्टरीज़ रिकर्सिवली
पैटर्न मिलान
मेमोरी कुशल
मेटाडेटा के साथ

एक्सेप्शन हैंडलिंग

try
{
    var dirs = Directory.GetDirectories(rootPath, "*", SearchOption.AllDirectories);
}
catch (UnauthorizedAccessException ex)
{
    Console.WriteLine($"Access denied: {ex.Message}");
}
catch (DirectoryNotFoundException ex)
{
    Console.WriteLine($"Directory not found: {ex.Message}");
}
catch (PathTooLongException ex)
{
    Console.WriteLine($"Path too long: {ex.Message}");
}
  1. C# में किसी पथ से सभी फ़ाइलों और फ़ोल्डर्स को कैसे डिलीट करें? C# में किसी पथ से सभी फ़ाइलों और फ़ोल्डर्स को कैसे डिलीट करें?

    सभी फ़ोल्डर्स और उनकी संबंधित डायरेक्टरीज को डिलीट करने के लिए हम C# में उपलब्ध System.IO नेमस्पेस का उपयोग कर सकते हैं। DirectoryInfo() क्लास एक डायरेक्टरी में सभी सब डायरेक्टरीज और फ़ाइल का विवरण प्रदान करती है। उदाहरण आइए एक डायरेक्टरी डेमो पर विचार करें जिसमें दो सब डायरेक्टरीज हैं और कुछ फ़ाइल

  1. Matplotlib बार चार्ट में सभी बार्स कैसे प्राप्त करें? Matplotlib बार चार्ट में सभी बार्स कैसे प्राप्त करें?

    Matplotlib में bar() मेथड बार कंटेनर ऑब्जेक्ट्स की सूची लौटाता है, जिसे वेरिएबल में स्टोर करके व्यक्तिगत बार्स के गुण (जैसे रंग) को बाद में संशोधित किया जा सकता है। चरण फिगर का आकार सेट करें और पैडिंग समायोजित करें। फिगर और सबप्लॉट्स का सेट बनाएं। subplots() मेथड का उपयोग करके x और y डेटा पॉइंट बन

  1. Tkinter Widget के Current X और Y Coordinates कैसे प्राप्त करें? Tkinter Widget के Current X और Y Coordinates कैसे प्राप्त करें?

    Tkinter GUI based applications बनाने के लिए व्यापक रूप से उपयोग किया जाता है। इसमें कई toolkits और functions या modules उपलब्ध हैं जिनका उपयोग किसी particular application के विभिन्न attributes को define करने के लिए किया जा सकता है। GUI applications बनाने के लिए यह buttons, text boxes और labels सहित