DirectoryInfo.GetDirectories Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает подкаталоги текущего каталога.
Перегрузки
| Имя | Описание |
|---|---|
| GetDirectories() |
Возвращает подкаталоги текущего каталога. |
| GetDirectories(String) |
Возвращает массив каталогов в текущем DirectoryInfo соответствии с заданными критериями поиска. |
| GetDirectories(String, EnumerationOptions) |
Возвращает массив каталогов в текущем DirectoryInfo сопоставлении указанных параметров поиска и перечисления. |
| GetDirectories(String, SearchOption) |
Возвращает массив каталогов в текущем DirectoryInfo соответствии заданным критериям поиска и использует значение для определения того, следует ли выполнять поиск подкаталогов. |
GetDirectories()
Возвращает подкаталоги текущего каталога.
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 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 соответствии с заданными критериями поиска.
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
Строка поиска, соответствующая именам каталогов. Этот параметр может содержать сочетание допустимых символов литерала и подстановочных знаков (* и ?), но не поддерживает регулярные выражения.
Возвращаемое значение
Массив сопоставления searchPatternтиповDirectoryInfo.
Исключения
Версии .NET Framework и .NET Core старше 2.1: searchPattern содержат один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .
searchPattern равно null.
Путь, инкапсулированный в DirectoryInfo объекте, недопустим (например, он находится на несопоставленном диске).
Вызывающий объект не имеет требуемого разрешения.
Примеры
В следующем примере каталоги подсчитывают пути, содержащие указанное письмо.
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 сопоставлении указанных параметров поиска и перечисления.
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
Объект, описывающий конфигурацию поиска и перечисления для использования.
Возвращаемое значение
Массив сопоставления searchPattern типов DirectoryInfo и 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 соответствии заданным критериям поиска и использует значение для определения того, следует ли выполнять поиск подкаталогов.
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
Одно из значений перечисления, указывающее, должна ли операция поиска включать только текущий каталог или все подкаталоги.
Возвращаемое значение
Массив сопоставления searchPatternтиповDirectoryInfo.
Исключения
Версии .NET Framework и .NET Core старше 2.1: searchPattern содержат один или несколько недопустимых символов, определенных методом GetInvalidPathChars() .
searchPattern равно null.
searchOption недопустимое SearchOption значение.
Путь, инкапсулированный в DirectoryInfo объекте, недопустим (например, он находится на несопоставленном диске).
Вызывающий объект не имеет требуемого разрешения.
Примеры
В следующем примере перечислены все каталоги и файлы, начинающиеся с буквы "c" в "c:\".
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 свойств:
См. также раздел
- Файловый и потоковый ввод-вывод
- Практическое руководство. Чтение текста из файла
- Практическое руководство. Запись текста в файл