DirectoryInfo.GetDirectories Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns the subdirectories of the current directory.
Overloads
GetDirectories() |
Returns the subdirectories of the current directory. |
GetDirectories(String) |
Returns an array of directories in the current DirectoryInfo matching the given search criteria. |
GetDirectories(String, EnumerationOptions) |
Returns an array of directories in the current DirectoryInfo matching the specified search pattern and enumeration options. |
GetDirectories(String, SearchOption) |
Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories. |
GetDirectories()
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
Returns the subdirectories of the current directory.
public:
cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories();
public System.IO.DirectoryInfo[] GetDirectories ();
member this.GetDirectories : unit -> System.IO.DirectoryInfo[]
Public Function GetDirectories () As DirectoryInfo()
Returns
An array of DirectoryInfo objects.
Exceptions
The path encapsulated in the DirectoryInfo object is invalid, such as being on an unmapped drive.
The caller does not have the required permission.
The caller does not have the required permission.
Examples
The following example retrieves all the directories in the root directory and displays the directory names.
using namespace System;
using namespace System::IO;
int main()
{
// Make a reference to a directory.
DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\" );
// Get a reference to each directory in that directory.
array<DirectoryInfo^>^diArr = di->GetDirectories();
// Display the names of the directories.
Collections::IEnumerator^ myEnum = diArr->GetEnumerator();
while ( myEnum->MoveNext() )
{
DirectoryInfo^ dri = safe_cast<DirectoryInfo^>(myEnum->Current);
Console::WriteLine( dri->Name );
}
}
using System;
using System.IO;
public class GetDirectoriesTest
{
public static void Main()
{
// Make a reference to a directory.
DirectoryInfo di = new DirectoryInfo("c:\\");
// Get a reference to each directory in that directory.
DirectoryInfo[] diArr = di.GetDirectories();
// Display the names of the directories.
foreach (DirectoryInfo dri in diArr)
Console.WriteLine(dri.Name);
}
}
open System.IO
// Make a reference to a directory.
let di = DirectoryInfo "c:\\"
// Get a reference to each directory in that directory.
let diArr = di.GetDirectories()
// Display the names of the directories.
for dri in diArr do
printfn $"{dri.Name}"
Imports System.IO
Public Class GetDirectoriesTest
Public Shared Sub Main()
' Make a reference to a directory.
Dim di As New DirectoryInfo("c:\")
' Get a reference to each directory in that directory.
Dim diArr As DirectoryInfo() = di.GetDirectories()
' Display the names of the directories.
Dim dri As DirectoryInfo
For Each dri In diArr
Console.WriteLine(dri.Name)
Next dri
End Sub
End Class
Remarks
If there are no subdirectories, this method returns an empty array. This method is not recursive.
This method pre-populates the values of the following DirectoryInfo properties:
See also
Applies to
GetDirectories(String)
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
Returns an array of directories in the current DirectoryInfo matching the given search criteria.
public:
cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories(System::String ^ searchPattern);
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern);
member this.GetDirectories : string -> System.IO.DirectoryInfo[]
Public Function GetDirectories (searchPattern As String) As DirectoryInfo()
Parameters
- searchPattern
- String
The search string to match against the names of directories. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.
Returns
An array of type DirectoryInfo
matching searchPattern
.
Exceptions
.NET Framework and .NET Core versions older than 2.1: searchPattern
contains one or more invalid characters defined by the GetInvalidPathChars() method.
searchPattern
is null
.
The path encapsulated in the DirectoryInfo
object is invalid (for example, it is on an unmapped drive).
The caller does not have the required permission.
Examples
The following example counts the directories in a path that contain the specified letter.
using namespace System;
using namespace System::IO;
int main()
{
try
{
DirectoryInfo^ di = gcnew DirectoryInfo( "c:\\" );
// Get only subdirectories that contain the letter "p."
array<DirectoryInfo^>^dirs = di->GetDirectories( "*p*" );
Console::WriteLine( "The number of directories containing the letter p is {0}.", dirs->Length );
Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
while ( myEnum->MoveNext() )
{
DirectoryInfo^ diNext = safe_cast<DirectoryInfo^>(myEnum->Current);
Console::WriteLine( "The number of files in {0} is {1}", diNext, diNext->GetFiles()->Length );
}
}
catch ( Exception^ e )
{
Console::WriteLine( "The process failed: {0}", e );
}
}
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
DirectoryInfo di = new DirectoryInfo(@"c:\");
// Get only subdirectories that contain the letter "p."
DirectoryInfo[] dirs = di.GetDirectories("*p*");
Console.WriteLine("The number of directories containing the letter p is {0}.", dirs.Length);
foreach (DirectoryInfo diNext in dirs)
{
Console.WriteLine("The number of files in {0} is {1}", diNext,
diNext.GetFiles().Length);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
open System.IO
try
let di = DirectoryInfo @"c:\"
// Get only subdirectories that contain the letter "p."
let dirs = di.GetDirectories "*p*"
printfn $"The number of directories containing the letter p is {dirs.Length}."
for diNext in dirs do
printfn $"The number of files in {diNext} is {diNext.GetFiles().Length}"
with e ->
printfn $"The process failed: {e}"
Imports System.IO
Public Class Test
Public Shared Sub Main()
' Specify the directories you want to manipulate.
Dim di As DirectoryInfo = New DirectoryInfo("c:\")
Try
'Get only subdirectories that contain the letter "p."
Dim dirs As DirectoryInfo() = di.GetDirectories("*p*")
Console.WriteLine("The number of directories containing the letter p is {0}.", dirs.Length)
Dim diNext As DirectoryInfo
For Each diNext In dirs
Console.WriteLine("The number of files in {0} is {1}", diNext, _
diNext.GetFiles().Length)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
Remarks
searchPattern
can be a combination of literal and wildcard characters, but it doesn't support regular expressions. The following wildcard specifiers are permitted in searchPattern
.
Wildcard specifier | Matches |
---|---|
* (asterisk) | Zero or more characters in that position. |
? (question mark) | Zero or one character in that position. |
Characters other than the wildcard are literal characters. For example, the string "*t" searches for all names in ending with the letter "t". ". The searchPattern
string "s*" searches for all names in path
beginning with the letter "s".
This method pre-populates the values of the following DirectoryInfo properties:
See also
Applies to
GetDirectories(String, EnumerationOptions)
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
Returns an array of directories in the current DirectoryInfo matching the specified search pattern and enumeration options.
public:
cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetDirectories : string * System.IO.EnumerationOptions -> System.IO.DirectoryInfo[]
Public Function GetDirectories (searchPattern As String, enumerationOptions As EnumerationOptions) As DirectoryInfo()
Parameters
- searchPattern
- String
The search string to match against the names of directories. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.
- enumerationOptions
- EnumerationOptions
An object that describes the search and enumeration configuration to use.
Returns
An array of type DirectoryInfo
matching searchPattern
and enumerationOptions
.
Exceptions
.NET Framework and .NET Core versions older than 2.1: searchPattern
contains one or more invalid characters defined by the GetInvalidPathChars() method.
searchPattern
is null
.
The path encapsulated in the DirectoryInfo
object is invalid (for example, it is on an unmapped drive).
The caller does not have the required permission.
Remarks
searchPattern
can be a combination of literal and wildcard characters, but it doesn't support regular expressions. The following wildcard specifiers are permitted in searchPattern
.
Wildcard specifier | Matches |
---|---|
* (asterisk) | Zero or more characters in that position. |
? (question mark) | Zero or one character in that position. |
Characters other than the wildcard are literal characters. For example, the string "*t" searches for all names in ending with the letter "t". ". The searchPattern
string "s*" searches for all names in path
beginning with the letter "s".
This method pre-populates the values of the following DirectoryInfo properties:
Applies to
GetDirectories(String, SearchOption)
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
- Source:
- DirectoryInfo.cs
Returns an array of directories in the current DirectoryInfo matching the given search criteria and using a value to determine whether to search subdirectories.
public:
cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.DirectoryInfo[] GetDirectories (string searchPattern, System.IO.SearchOption searchOption);
member this.GetDirectories : string * System.IO.SearchOption -> System.IO.DirectoryInfo[]
Public Function GetDirectories (searchPattern As String, searchOption As SearchOption) As DirectoryInfo()
Parameters
- searchPattern
- String
The search string to match against the names of directories. This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.
- searchOption
- SearchOption
One of the enumeration values that specifies whether the search operation should include only the current directory or all subdirectories.
Returns
An array of type DirectoryInfo
matching searchPattern
.
Exceptions
.NET Framework and .NET Core versions older than 2.1: searchPattern
contains one or more invalid characters defined by the GetInvalidPathChars() method.
searchPattern
is null
.
searchOption
is not a valid SearchOption value.
The path encapsulated in the DirectoryInfo
object is invalid (for example, it is on an unmapped drive).
The caller does not have the required permission.
Examples
The following example lists all of the directories and files that begin with the letter "c" in "c:\".
using namespace System;
using namespace System::IO;
ref class App
{
public:
static void Main()
{
// Specify the directory you want to manipulate.
String^ path = "c:\\";
String^ searchPattern = "c*";
DirectoryInfo^ di = gcnew DirectoryInfo(path);
array<DirectoryInfo^>^ directories =
di->GetDirectories(searchPattern, SearchOption::TopDirectoryOnly);
array<FileInfo^>^ files =
di->GetFiles(searchPattern, SearchOption::TopDirectoryOnly);
Console::WriteLine(
"Directories that begin with the letter \"c\" in {0}", path);
for each (DirectoryInfo^ dir in directories)
{
Console::WriteLine(
"{0,-25} {1,25}", dir->FullName, dir->LastWriteTime);
}
Console::WriteLine();
Console::WriteLine(
"Files that begin with the letter \"c\" in {0}", path);
for each (FileInfo^ file in files)
{
Console::WriteLine(
"{0,-25} {1,25}", file->Name, file->LastWriteTime);
}
} // Main()
}; // App()
int main()
{
App::Main();
}
using System;
using System.IO;
class App
{
public static void Main()
{
// Specify the directory you want to manipulate.
string path = @"c:\";
string searchPattern = "c*";
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] directories =
di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly);
FileInfo[] files =
di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly);
Console.WriteLine(
"Directories that begin with the letter \"c\" in {0}", path);
foreach (DirectoryInfo dir in directories)
{
Console.WriteLine(
"{0,-25} {1,25}", dir.FullName, dir.LastWriteTime);
}
Console.WriteLine();
Console.WriteLine(
"Files that begin with the letter \"c\" in {0}", path);
foreach (FileInfo file in files)
{
Console.WriteLine(
"{0,-25} {1,25}", file.Name, file.LastWriteTime);
}
} // Main()
} // App()
open System.IO
// Specify the directory you want to manipulate.
let path = @"c:\"
let searchPattern = "c*"
let di = DirectoryInfo path
let directories = di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)
let files = di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly)
printfn $"Directories that begin with the letter \"c\" in {path}"
for dir in directories do
printfn $"{dir.FullName,-25} {dir.LastWriteTime,25}"
printfn $"\nFiles that begin with the letter \"c\" in {path}"
for file in files do
printfn $"{file.Name,-25} {file.LastWriteTime,25}"
Imports System.IO
Class App
Public Shared Sub Main()
' Specify the directory you want to manipulate.
Dim path As String = "c:\\"
Dim searchPattern As String = "c*"
Dim di As DirectoryInfo = New DirectoryInfo(path)
Dim directories() As DirectoryInfo = _
di.GetDirectories(searchPattern, SearchOption.TopDirectoryOnly)
Dim files() As FileInfo = _
di.GetFiles(searchPattern, SearchOption.TopDirectoryOnly)
Console.WriteLine( _
"Directories that begin with the letter 'c' in {0}", path)
Dim dir As DirectoryInfo
For Each dir In directories
Console.WriteLine( _
"{0,-25} {1,25}", dir.FullName, dir.LastWriteTime)
Next dir
Console.WriteLine()
Console.WriteLine( _
"Files that begin with the letter 'c' in {0}", path)
Dim file As FileInfo
For Each file In files
Console.WriteLine( _
"{0,-25} {1,25}", file.Name, file.LastWriteTime)
Next file
End Sub
End Class
Remarks
searchPattern
can be a combination of literal and wildcard characters, but it doesn't support regular expressions. The following wildcard specifiers are permitted in searchPattern
.
Wildcard specifier | Matches |
---|---|
* (asterisk) | Zero or more characters in that position. |
? (question mark) | Zero or one character in that position. |
Characters other than the wildcard are literal characters. For example, the string "*t" searches for all names in ending with the letter "t". ". The searchPattern
string "s*" searches for all names in path
beginning with the letter "s".
If there are no subdirectories, or no subdirectories match the searchPattern
parameter, this method returns an empty array.
This method pre-populates the values of the following DirectoryInfo properties: