DirectoryInfo.GetFileSystemInfos Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře aktuálního adresáře.
Přetížení
| Name | Description |
|---|---|
| GetFileSystemInfos() |
Vrátí pole položek silného typu FileSystemInfo představujících všechny soubory a podadresáře v adresáři. |
| GetFileSystemInfos(String) |
Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře, které odpovídají zadaným kritériím hledání. |
| GetFileSystemInfos(String, EnumerationOptions) |
Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře, které odpovídají zadanému vzoru hledání a možnostem výčtu. |
| GetFileSystemInfos(String, SearchOption) |
Načte pole FileSystemInfo objektů, které představují soubory a podadresáře odpovídající zadaným kritériím hledání. |
GetFileSystemInfos()
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Vrátí pole položek silného typu FileSystemInfo představujících všechny soubory a podadresáře v adresáři.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()
Návraty
Pole položek silného typu FileSystemInfo .
Výjimky
Cesta je neplatná (například je na nemapované jednotce).
Příklady
Následující příklad spočítá soubory a adresáře v zadaném adresáři.
using System;
using System.IO;
class DirectoryFileCount
{
static long files = 0;
static long directories = 0;
static void Main()
{
try
{
Console.WriteLine("Enter the path to a directory:");
string directory = Console.ReadLine();
// Create a new DirectoryInfo object.
DirectoryInfo dir = new DirectoryInfo(directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
}
// Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos();
Console.WriteLine("Working...");
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos);
// Display the results to the console.
Console.WriteLine("Directories: {0}", directories);
Console.WriteLine("Files: {0}", files);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo)
{
// Check the FSInfo parameter.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
}
// Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{
// Add one to the directory count.
directories++;
// Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i;
// Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos());
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
// Add one to the file count.
files++;
}
}
}
}
open System.IO
let mutable files = 0
let mutable directories = 0
let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) =
// Check the FSInfo parameter.
if fsInfo = null then
nullArg "fsInfo"
// Iterate through each item.
for i in fsInfo do
// Check to see if this is a DirectoryInfo object.
match i with
| :? DirectoryInfo as dInfo ->
// Add one to the directory count.
directories <- directories + 1
// Iterate through all sub-directories.
listDirectoriesAndFiles (dInfo.GetFileSystemInfos())
// Check to see if this is a FileInfo object.
| :? FileInfo ->
// Add one to the file count.
files <- files + 1
| _ -> ()
try
printfn "Enter the path to a directory:"
let directory = stdin.ReadLine()
// Create a new DirectoryInfo object.
let dir = DirectoryInfo directory
if not dir.Exists then
raise (DirectoryNotFoundException "The directory does not exist.")
// Call the GetFileSystemInfos method.
let infos = dir.GetFileSystemInfos()
printfn "Working..."
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
listDirectoriesAndFiles infos
// Display the results to the console.
printfn $"Directories: {directories}"
printfn $"Files: {files}"
with e ->
printfn $"{e.Message}"
Imports System.IO
Module DirectoryFileCount
Dim files As Long = 0
Dim directories As Long = 0
Sub Main()
Try
Console.WriteLine("Enter the path to a directory:")
Dim directory As String = Console.ReadLine()
' Create a new DirectoryInfo object.
Dim dir As New DirectoryInfo(directory)
If Not dir.Exists Then
Throw New DirectoryNotFoundException("The directory does not exist.")
End If
' Call the GetFileSystemInfos method.
Dim infos As FileSystemInfo() = dir.GetFileSystemInfos()
Console.WriteLine("Working...")
' Pass the result to the ListDirectoriesAndFiles
' method defined below.
ListDirectoriesAndFiles(infos)
' Display the results to the console.
Console.WriteLine("Directories: {0}", directories)
Console.WriteLine("Files: {0}", files)
Catch e As Exception
Console.WriteLine(e.Message)
Finally
Console.ReadLine()
End Try
End Sub
Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo)
' Check the FSInfo parameter.
If FSInfo Is Nothing Then
Throw New ArgumentNullException("FSInfo")
End If
' Iterate through each item.
Dim i As FileSystemInfo
For Each i In FSInfo
' Check to see if this is a DirectoryInfo object.
If TypeOf i Is DirectoryInfo Then
' Add one to the directory count.
directories += 1
' Cast the object to a DirectoryInfo object.
Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)
' Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos())
' Check to see if this is a FileInfo object.
ElseIf TypeOf i Is FileInfo Then
' Add one to the file count.
files += 1
End If
Next i
End Sub
End Module
Poznámky
Pokud v souboru DirectoryInfonejsou žádné soubory nebo adresáře, vrátí tato metoda prázdné pole. Tato metoda není rekurzivní.
Pro podadresáře lze FileSystemInfo objekty vrácené touto metodou přetypovat na odvozenou třídu DirectoryInfo. FileAttributes Pomocí hodnoty vrácené FileSystemInfo.Attributes vlastností určete, zda FileSystemInfo představuje soubor nebo adresář.
Tato metoda předem naplní hodnoty následujících FileSystemInfo vlastností:
Viz také
- FileSystemInfo
- FileSystemWatcher
- Vstup/výstup souborů a streamů
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
Platí pro
GetFileSystemInfos(String)
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře, které odpovídají zadaným kritériím hledání.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern);
public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern);
member this.GetFileSystemInfos : string -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String) As FileSystemInfo()
Parametry
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy adresářů a souborů. Tento parametr může obsahovat kombinaci platných znaků literálu a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
Návraty
Pole objektů silného typu FileSystemInfo odpovídajících kritériím hledání.
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: searchPattern obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .
searchPattern je null.
Zadaná cesta je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Příklady
Následující příklad spočítá soubory a adresáře, které odpovídají zadanému vzoru hledání.
using System;
using System.IO;
class DirectoryFileCount
{
static long files = 0;
static long directories = 0;
static void Main()
{
try
{
Console.WriteLine("Enter the path to a directory:");
string directory = Console.ReadLine();
Console.WriteLine("Enter a search string (for example *p*):");
string searchString = Console.ReadLine();
// Create a new DirectoryInfo object.
DirectoryInfo dir = new DirectoryInfo(directory);
if (!dir.Exists)
{
throw new DirectoryNotFoundException("The directory does not exist.");
}
// Call the GetFileSystemInfos method.
FileSystemInfo[] infos = dir.GetFileSystemInfos(searchString);
Console.WriteLine("Working...");
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
ListDirectoriesAndFiles(infos, searchString);
// Display the results to the console.
Console.WriteLine("Directories: {0}", directories);
Console.WriteLine("Files: {0}", files);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
finally
{
Console.ReadLine();
}
}
static void ListDirectoriesAndFiles(FileSystemInfo[] FSInfo, string SearchString)
{
// Check the parameters.
if (FSInfo == null)
{
throw new ArgumentNullException("FSInfo");
}
if (SearchString == null || SearchString.Length == 0)
{
throw new ArgumentNullException("SearchString");
}
// Iterate through each item.
foreach (FileSystemInfo i in FSInfo)
{
// Check to see if this is a DirectoryInfo object.
if (i is DirectoryInfo)
{
// Add one to the directory count.
directories++;
// Cast the object to a DirectoryInfo object.
DirectoryInfo dInfo = (DirectoryInfo)i;
// Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString);
}
// Check to see if this is a FileInfo object.
else if (i is FileInfo)
{
// Add one to the file count.
files++;
}
}
}
}
open System
open System.IO
let mutable files = 0
let mutable directories = 0
let rec listDirectoriesAndFiles (fsInfo: FileSystemInfo[]) searchString =
// Check the parameters.
if fsInfo = null then
nullArg "fsInfo"
if String.IsNullOrEmpty searchString then
invalidArg "searchString" "Search string cannot be empty."
// Iterate through each item.
for i in fsInfo do
// Check to see if this is a DirectoryInfo object.
match i with
| :? DirectoryInfo as dInfo ->
// Add one to the directory count.
directories <- directories + 1
// Iterate through all sub-directories.
listDirectoriesAndFiles (dInfo.GetFileSystemInfos searchString) searchString
// Check to see if this is a FileInfo object.
| :? FileInfo ->
// Add one to the file count.
files <- files + 1
| _ -> ()
try
printfn "Enter the path to a directory:"
let directory = stdin.ReadLine()
printfn "Enter a search string (for example *p*):"
let searchString = stdin.ReadLine()
// Create a new DirectoryInfo object.
let dir = DirectoryInfo directory
if not dir.Exists then
raise (DirectoryNotFoundException "The directory does not exist.")
// Call the GetFileSystemInfos method.
let infos = dir.GetFileSystemInfos searchString
printfn "Working..."
// Pass the result to the ListDirectoriesAndFiles
// method defined below.
listDirectoriesAndFiles infos searchString
// Display the results to the console.
printfn $"Directories: {directories}"
printfn $"Files: {files}"
with e ->
printfn $"{e.Message}"
Imports System.IO
Module DirectoryFileCount
Dim files As Long = 0
Dim directories As Long = 0
Sub Main()
Try
Console.WriteLine("Enter the path to a directory:")
Dim directory As String = Console.ReadLine()
Console.WriteLine("Enter a search string (for example *p*):")
Dim searchString As String = Console.ReadLine()
' Create a new DirectoryInfo object.
Dim dir As New DirectoryInfo(directory)
If Not dir.Exists Then
Throw New DirectoryNotFoundException("The directory does not exist.")
End If
' Call the GetFileSystemInfos method.
Dim infos As FileSystemInfo() = dir.GetFileSystemInfos(searchString)
Console.WriteLine("Working...")
' Pass the result to the ListDirectoriesAndFiles
' method defined below.
ListDirectoriesAndFiles(infos, searchString)
' Display the results to the console.
Console.WriteLine("Directories: {0}", directories)
Console.WriteLine("Files: {0}", files)
Catch e As Exception
Console.WriteLine(e.Message)
Finally
Console.ReadLine()
End Try
End Sub
Sub ListDirectoriesAndFiles(ByVal FSInfo() As FileSystemInfo, ByVal SearchString As String)
' Check the parameters.
If FSInfo Is Nothing Then
Throw New ArgumentNullException("FSInfo")
End If
If SearchString Is Nothing OrElse SearchString.Length = 0 Then
Throw New ArgumentNullException("SearchString")
End If
' Iterate through each item.
Dim i As FileSystemInfo
For Each i In FSInfo
' Check to see if this is a DirectoryInfo object.
If TypeOf i Is DirectoryInfo Then
' Add one to the directory count.
directories += 1
' Cast the object to a DirectoryInfo object.
Dim dInfo As DirectoryInfo = CType(i, DirectoryInfo)
' Iterate through all sub-directories.
ListDirectoriesAndFiles(dInfo.GetFileSystemInfos(SearchString), SearchString)
' Check to see if this is a FileInfo object.
ElseIf TypeOf i Is FileInfo Then
' Add one to the file count.
files += 1
End If
Next i
End Sub
End Module
Poznámky
searchPattern může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. Následující specifikátory zástupných znaků jsou povoleny v searchPattern.
| Specifikátor zástupných znaků | Shody |
|---|---|
| * (hvězdička) | V této pozici je nula nebo více znaků. |
| ? (otazník) | V této pozici je nula nebo jeden znak. |
Jiné znaky než zástupné znaky jsou literální znaky. Například řetězec "*t" vyhledá všechny názvy končící písmenem "t". ". Řetězec searchPattern "s*" vyhledá všechny názvy začínající path písmenem "s".
Tato metoda není rekurzivní.
Pro podadresáře lze FileSystemInfo objekty vrácené touto metodou přetypovat na odvozenou třídu DirectoryInfo. FileAttributes Pomocí hodnoty vrácené FileSystemInfo.Attributes vlastností určete, zda FileSystemInfo představuje soubor nebo adresář.
Jsou povoleny zástupné znaky. Například searchPattern řetězec "*t" vyhledá všechny názvy adresářů končící path písmenem "t". Řetězec searchPattern "s*" vyhledá všechny názvy adresářů začínající path písmenem "s".
Řetězec "." lze použít pouze v searchPattern případě, že je zadán jako součást platného názvu adresáře, například v názvu adresáře "a.. b". Nedá se použít k přesunutí do hierarchie adresářů. Pokud neexistují žádné soubory nebo adresáře nebo žádné soubory nebo adresáře, které odpovídají searchPattern řetězci v této DirectoryInfometodě, vrátí tato metoda prázdné pole.
Tato metoda předem naplní hodnoty následujících FileSystemInfo vlastností:
Viz také
- FileSystemInfo
- FileSystemWatcher
- Vstup/výstup souborů a streamů
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
Platí pro
GetFileSystemInfos(String, EnumerationOptions)
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Načte pole objektů silného typu FileSystemInfo představujících soubory a podadresáře, které odpovídají zadanému vzoru hledání a možnostem výčtu.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFileSystemInfos : string * System.IO.EnumerationOptions -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String, enumerationOptions As EnumerationOptions) As FileSystemInfo()
Parametry
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy adresářů a souborů. Tento parametr může obsahovat kombinaci platných znaků literálu a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- enumerationOptions
- EnumerationOptions
Objekt, který popisuje konfiguraci vyhledávání a výčtu, která se má použít.
Návraty
Pole objektů silného typu FileSystemInfo odpovídajících searchPattern a enumerationOptions.
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: searchPattern obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .
searchPattern je null.
Zadaná cesta je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Poznámky
searchPattern může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. Následující specifikátory zástupných znaků jsou povoleny v searchPattern.
| Specifikátor zástupných znaků | Shody |
|---|---|
| * (hvězdička) | V této pozici je nula nebo více znaků. |
| ? (otazník) | V této pozici je nula nebo jeden znak. |
Jiné znaky než zástupné znaky jsou literální znaky. Například řetězec "*t" vyhledá všechny názvy končící písmenem "t". ". Řetězec searchPattern "s*" vyhledá všechny názvy začínající path písmenem "s".
Tato metoda není rekurzivní.
Pro podadresáře lze FileSystemInfo objekty vrácené touto metodou přetypovat na odvozenou třídu DirectoryInfo. FileAttributes Pomocí hodnoty vrácené FileSystemInfo.Attributes vlastností určete, zda FileSystemInfo představuje soubor nebo adresář.
Jsou povoleny zástupné znaky. Například searchPattern řetězec "*t" vyhledá všechny názvy adresářů končící path písmenem "t". Řetězec searchPattern "s*" vyhledá všechny názvy adresářů začínající path písmenem "s".
Řetězec "." lze použít pouze v searchPattern případě, že je zadán jako součást platného názvu adresáře, například v názvu adresáře "a.. b". Nedá se použít k přesunutí do hierarchie adresářů. Pokud neexistují žádné soubory nebo adresáře nebo žádné soubory nebo adresáře, které odpovídají searchPattern řetězci v této DirectoryInfometodě, vrátí tato metoda prázdné pole.
Tato metoda předem naplní hodnoty následujících FileSystemInfo vlastností:
Platí pro
GetFileSystemInfos(String, SearchOption)
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
- Zdroj:
- DirectoryInfo.cs
Načte pole FileSystemInfo objektů, které představují soubory a podadresáře odpovídající zadaným kritériím hledání.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileSystemInfo[] GetFileSystemInfos(string searchPattern, System.IO.SearchOption searchOption);
member this.GetFileSystemInfos : string * System.IO.SearchOption -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos (searchPattern As String, searchOption As SearchOption) As FileSystemInfo()
Parametry
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy adresářů a souborů. Tento parametr může obsahovat kombinaci platných znaků literálu a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- searchOption
- SearchOption
Jedna z hodnot výčtu, která určuje, zda by operace hledání měla obsahovat pouze aktuální adresář nebo všechny podadresáře. Výchozí hodnota je TopDirectoryOnly.
Návraty
Pole položek systému souborů, které odpovídají kritériím hledání.
Výjimky
Verze .NET Framework a .NET Core starší než 2.1: searchPattern obsahuje jeden nebo více neplatných znaků definovaných metodou GetInvalidPathChars() .
searchPattern je null.
searchOption není platná SearchOption hodnota.
Zadaná cesta je neplatná (například je na nemapované jednotce).
Volající nemá požadované oprávnění.
Poznámky
searchPattern může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. Následující specifikátory zástupných znaků jsou povoleny v searchPattern.
| Specifikátor zástupných znaků | Shody |
|---|---|
| * (hvězdička) | V této pozici je nula nebo více znaků. |
| ? (otazník) | V této pozici je nula nebo jeden znak. |
Jiné znaky než zástupné znaky jsou literální znaky. Například řetězec "*t" vyhledá všechny názvy končící písmenem "t". ". Řetězec searchPattern "s*" vyhledá všechny názvy začínající path písmenem "s".
Pro podadresáře lze FileSystemInfo objekty vrácené touto metodou přetypovat na odvozenou třídu DirectoryInfo. FileAttributes Pomocí hodnoty vrácené FileSystemInfo.Attributes vlastností určete, zda FileSystemInfo představuje soubor nebo adresář.
Tato metoda předem naplní hodnoty následujících FileSystemInfo vlastností: