Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
C# Program to Search Sub-Directory in a Given Directory
Searching for sub-directories in a given directory is a common task in many applications. In C#, we can use the Directory and DirectoryInfo classes provided by the System.IO namespace to perform this task. In this article, we will explore how to write a C# program to search for sub-directories in a given directory.
Syntax
Following is the syntax for using DirectoryInfo.GetDirectories() method
DirectoryInfo directoryInfo = new DirectoryInfo(path); DirectoryInfo[] subdirectories = directoryInfo.GetDirectories();
Following is the syntax for using Directory.GetDirectories() method
string[] subdirectories = Directory.GetDirectories(path);
Using DirectoryInfo.GetDirectories()
The DirectoryInfo.GetDirectories() method returns an array of DirectoryInfo objects that represent the directories within a specified directory. This approach provides more detailed information about each subdirectory
Example
using System;
using System.IO;
class Program {
static void Main() {
string path = @"C:";
try {
DirectoryInfo directory = new DirectoryInfo(path);
DirectoryInfo[] subdirectories = directory.GetDirectories();
Console.WriteLine($"Subdirectories in {path}:");
foreach (DirectoryInfo subdirectory in subdirectories) {
Console.WriteLine($"Name: {subdirectory.Name}");
Console.WriteLine($"Full Path: {subdirectory.FullName}");
Console.WriteLine($"Created: {subdirectory.CreationTime}");
Console.WriteLine("---");
}
Console.WriteLine($"Total subdirectories found: {subdirectories.Length}");
}
catch (Exception ex) {
Console.WriteLine($"Error: {ex.Message}");
}
}
}
The output of the above code is
Subdirectories in C:\: Name: Program Files Full Path: C:\Program Files Created: 7/13/2009 10:20:08 PM --- Name: Users Full Path: C:\Users Created: 7/14/2009 4:20:09 AM --- Name: Windows Full Path: C:\Windows Created: 7/13/2009 10:20:08 PM --- Total subdirectories found: 3
Using Directory.GetDirectories()
The Directory.GetDirectories() method returns an array of strings that represent the full paths of the subdirectories. This is a simpler approach when you only need the directory names
Example
using System;
using System.IO;
class Program {
static void Main() {
string path = @"C:";
try {
string[] subdirectories = Directory.GetDirectories(path);
Console.WriteLine($"Subdirectories in {path}:");
foreach (string subdirectory in subdirectories) {
Console.WriteLine(subdirectory);
}
Console.WriteLine($"Total subdirectories found: {subdirectories.Length}");
}
catch (Exception ex) {
Console.WriteLine($"Error: {ex.Message}");
}
}
}
The output of the above code is
Subdirectories in C:\: C:\Program Files C:\Users C:\Windows Total subdirectories found: 3
Searching with Patterns
Both methods support search patterns to filter results. Here's an example using wildcards
Example
using System;
using System.IO;
class Program {
static void Main() {
string path = @"C:";
try {
// Search for directories starting with 'P'
string[] subdirectories = Directory.GetDirectories(path, "P*");
Console.WriteLine("Directories starting with 'P':");
foreach (string subdirectory in subdirectories) {
Console.WriteLine(subdirectory);
}
}
catch (Exception ex) {
Console.WriteLine($"Error: {ex.Message}");
}
}
}
The output of the above code is
Directories starting with 'P': C:\Program Files
Comparison
| DirectoryInfo.GetDirectories() | Directory.GetDirectories() |
|---|---|
Returns DirectoryInfo[] objects |
Returns string[] paths |
| Provides detailed directory information | Simple string paths only |
| Object-oriented approach | Static method approach |
| Better for complex operations | Better for simple path listing |
Conclusion
Both DirectoryInfo.GetDirectories() and Directory.GetDirectories() methods are effective for searching subdirectories in C#. Use DirectoryInfo when you need detailed information about directories, and Directory for simple path retrieval. Both methods support search patterns and provide essential functionality for file system operations.
