DirectoryInfo.GetDirectories Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает подкаталоги текущего каталога.
Перегрузки
GetDirectories() |
Возвращает подкаталоги текущего каталога. |
GetDirectories(String) |
Возвращает массив каталогов текущего объекта DirectoryInfo, отвечающих заданным условиям поиска. |
GetDirectories(String, EnumerationOptions) |
Возвращает массив каталогов при использовании DirectoryInfo, соответствующий указанному шаблону поиска и параметрам перечисления. |
GetDirectories(String, SearchOption) |
Возвращает массив каталогов в текущем объекте DirectoryInfo, отвечающих заданным условиям поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах. |
GetDirectories()
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
Возвращает подкаталоги текущего каталога.
public:
cli::array <System::IO::DirectoryInfo ^> ^ GetDirectories();
public System.IO.DirectoryInfo[] GetDirectories ();
member this.GetDirectories : unit -> System.IO.DirectoryInfo[]
Public Function GetDirectories () As DirectoryInfo()
Возвращаемое значение
Массив объектов DirectoryInfo.
Исключения
Путь, содержащийся в объекте DirectoryInfo, является недействительным (например, он ведет на несопоставленный диск).
У вызывающего объекта отсутствует необходимое разрешение.
У вызывающего объекта отсутствует необходимое разрешение.
Примеры
В следующем примере извлекаются все каталоги в корневом каталоге и отображаются имена каталогов.
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
Комментарии
Если подкаталогов нет, этот метод возвращает пустой массив. Этот метод не является рекурсивным.
Этот метод предварительно заполняет значения следующих DirectoryInfo свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
GetDirectories(String)
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
Возвращает массив каталогов текущего объекта DirectoryInfo, отвечающих заданным условиям поиска.
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()
Параметры
- searchPattern
- String
Строка поиска, которая будет сравниваться с именами каталогов. Этот параметр может содержать сочетание допустимого литерального пути и подстановочного символа (* и ?), но не поддерживает регулярные выражения.
Возвращаемое значение
Массив элементов типа DirectoryInfo
, отвечающих критерию searchPattern
.
Исключения
платформа .NET Framework и .NET Core версий старше 2.1: searchPattern
содержит один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .
searchPattern
имеет значение null
.
Путь, содержащийся в объекте DirectoryInfo
, является недействительным (например, он ведет на несопоставленный диск).
У вызывающего объекта отсутствует необходимое разрешение.
Примеры
В следующем примере производится подсчет каталогов в пути, который содержит указанную букву.
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
Комментарии
searchPattern
может быть сочетанием литеральных и подстановочных знаков, но не поддерживает регулярные выражения. Следующие описатели с подстановочными знаками разрешены в searchPattern
.
Описатель подстановочных знаков | Соответствует |
---|---|
* (звездочка) | Ноль или более символов в этой позиции. |
? (вопросительный знак) | Ноль или один символ в этой позиции. |
Символы, отличные от подстановочного знака, являются литеральными символами. Например, строка "*t" ищет все имена, заканчивающиеся буквой "t". ". Строка searchPattern
"s*" ищет все имена, path
начинающиеся с буквы "s".
Этот метод предварительно заполняет значения следующих DirectoryInfo свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл
Применяется к
GetDirectories(String, EnumerationOptions)
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
Возвращает массив каталогов при использовании DirectoryInfo, соответствующий указанному шаблону поиска и параметрам перечисления.
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()
Параметры
- searchPattern
- String
Строка поиска, которая будет сравниваться с именами каталогов. Этот параметр может содержать сочетание допустимого литерального пути и подстановочного символа (* и ?), но не поддерживает регулярные выражения.
- enumerationOptions
- EnumerationOptions
Объект, описывающий конфигурацию поиска и перечисления для использования.
Возвращаемое значение
Массив элементов типа DirectoryInfo
, соответствующий searchPattern
и enumerationOptions
.
Исключения
платформа .NET Framework и .NET Core версий старше 2.1: searchPattern
содержит один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .
searchPattern
имеет значение null
.
Путь, содержащийся в объекте DirectoryInfo
, является недействительным (например, он ведет на несопоставленный диск).
У вызывающего объекта отсутствует необходимое разрешение.
Комментарии
searchPattern
может быть сочетанием литеральных и подстановочных знаков, но не поддерживает регулярные выражения. Следующие описатели с подстановочными знаками разрешены в searchPattern
.
Описатель подстановочных знаков | Соответствует |
---|---|
* (звездочка) | Ноль или более символов в этой позиции. |
? (вопросительный знак) | Ноль или один символ в этой позиции. |
Символы, отличные от подстановочного знака, являются литеральными символами. Например, строка "*t" ищет все имена, заканчивающиеся буквой "t". ". Строка searchPattern
"s*" ищет все имена, path
начинающиеся с буквы "s".
Этот метод предварительно заполняет значения следующих DirectoryInfo свойств:
Применяется к
GetDirectories(String, SearchOption)
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
- Исходный код:
- DirectoryInfo.cs
Возвращает массив каталогов в текущем объекте DirectoryInfo, отвечающих заданным условиям поиска, с использованием значения, которое позволяет определить, следует ли выполнять поиск в подкаталогах.
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()
Параметры
- searchPattern
- String
Строка поиска, которая будет сравниваться с именами каталогов. Этот параметр может содержать сочетание допустимого литерального пути и подстановочного символа (* и ?), но не поддерживает регулярные выражения.
- searchOption
- SearchOption
Одно из значений перечисления, определяющее, следует ли выполнять поиск только в текущем каталоге или также во всех его подкаталогах.
Возвращаемое значение
Массив элементов типа DirectoryInfo
, отвечающих критерию searchPattern
.
Исключения
платформа .NET Framework и .NET Core версий старше 2.1: searchPattern
содержит один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .
searchPattern
имеет значение null
.
searchOption
не является допустимым значением SearchOption.
Путь, содержащийся в объекте DirectoryInfo
, является недействительным (например, он ведет на несопоставленный диск).
У вызывающего объекта отсутствует необходимое разрешение.
Примеры
В следующем примере перечислены все каталоги и файлы, начинающиеся с буквы "c" в "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
Комментарии
searchPattern
может быть сочетанием литеральных и подстановочных знаков, но не поддерживает регулярные выражения. Следующие описатели с подстановочными знаками разрешены в searchPattern
.
Описатель подстановочных знаков | Соответствует |
---|---|
* (звездочка) | Ноль или более символов в этой позиции. |
? (вопросительный знак) | Ноль или один символ в этой позиции. |
Символы, отличные от подстановочного знака, являются литеральными символами. Например, строка "*t" ищет все имена, заканчивающиеся буквой "t". ". Строка searchPattern
"s*" ищет все имена, path
начинающиеся с буквы "s".
Если подкаталоги отсутствуют или подкаталоги не соответствуют параметру searchPattern
, этот метод возвращает пустой массив.
Этот метод предварительно заполняет значения следующих DirectoryInfo свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл