DirectoryInfo.GetFileSystemInfos Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die bestanden en submappen van de huidige map vertegenwoordigen.
Overloads
| Name | Description |
|---|---|
| GetFileSystemInfos() |
Retourneert een matrix met sterk getypte FileSystemInfo vermeldingen die alle bestanden en submappen in een map vertegenwoordigen. |
| GetFileSystemInfos(String) |
Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die voldoen aan de opgegeven zoekcriteria. |
| GetFileSystemInfos(String, EnumerationOptions) |
Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties. |
| GetFileSystemInfos(String, SearchOption) |
Hiermee haalt u een matrix van FileSystemInfo objecten op die de bestanden en submappen vertegenwoordigen die overeenkomen met de opgegeven zoekcriteria. |
GetFileSystemInfos()
Retourneert een matrix met sterk getypte FileSystemInfo vermeldingen die alle bestanden en submappen in een map vertegenwoordigen.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()
Retouren
Een matrix met sterk getypte FileSystemInfo vermeldingen.
Uitzonderingen
Het pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
Voorbeelden
In het volgende voorbeeld worden de bestanden en mappen in de opgegeven map geteld.
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
Opmerkingen
Als er geen bestanden of mappen in de DirectoryInfomap staan, retourneert deze methode een lege matrix. Deze methode is niet recursief.
Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.
Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:
Zie ook
- FileSystemInfo
- FileSystemWatcher
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven
Van toepassing op
GetFileSystemInfos(String)
Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die voldoen aan de opgegeven zoekcriteria.
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()
Parameters
- searchPattern
- String
De zoekreeks die overeenkomt met de namen van mappen en bestanden. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.
Retouren
Een matrix van sterk getypte FileSystemInfo objecten die overeenkomen met de zoekcriteria.
Uitzonderingen
.NET Framework- en .NET Core-versies ouder dan 2.1: searchPattern bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().
searchPattern is null.
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
De beller heeft niet de vereiste machtiging.
Voorbeelden
In het volgende voorbeeld worden de bestanden en mappen geteld die overeenkomen met het opgegeven zoekpatroon.
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
Opmerkingen
searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.
| Jokertekenaanduiding | Overeenkomsten |
|---|---|
| * (sterretje) | Nul of meer tekens op die positie. |
| ? (vraagteken) | Nul of één teken op die positie. |
Andere tekens dan het jokerteken zijn letterlijke tekens. Met de tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die eindigen op de letter 't'. ". De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.
Deze methode is niet recursief.
Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.
Jokertekens zijn toegestaan. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle mapnamen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle mapnamen in path het begin met de letter 's'.
De tekenreeks '.' kan alleen worden gebruikt searchPattern als deze is opgegeven als onderdeel van een geldige mapnaam, zoals in de mapnaam a.. b". Het kan niet worden gebruikt om de adreslijsthiërarchie omhoog te verplaatsen. Als er geen bestanden of mappen zijn of geen bestanden of mappen die overeenkomen met de searchPattern tekenreeks in de DirectoryInfo, retourneert deze methode een lege matrix.
Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:
Zie ook
- FileSystemInfo
- FileSystemWatcher
- Bestands- en Stream-I/O
- Procedure: Tekst uit een bestand lezen
- Procedure: Tekst naar een bestand schrijven
Van toepassing op
GetFileSystemInfos(String, EnumerationOptions)
Hiermee wordt een matrix opgehaald van sterk getypte FileSystemInfo objecten die de bestanden en submappen vertegenwoordigen die overeenkomen met het opgegeven zoekpatroon en de opsommingsopties.
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()
Parameters
- searchPattern
- String
De zoekreeks die overeenkomt met de namen van mappen en bestanden. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.
- enumerationOptions
- EnumerationOptions
Een object dat de zoek- en opsommingsconfiguratie beschrijft die moet worden gebruikt.
Retouren
Een matrix van sterk getypte FileSystemInfo objecten die overeenkomen searchPattern met en enumerationOptions.
Uitzonderingen
.NET Framework- en .NET Core-versies ouder dan 2.1: searchPattern bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().
searchPattern is null.
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
De beller heeft niet de vereiste machtiging.
Opmerkingen
searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.
| Jokertekenaanduiding | Overeenkomsten |
|---|---|
| * (sterretje) | Nul of meer tekens op die positie. |
| ? (vraagteken) | Nul of één teken op die positie. |
Andere tekens dan het jokerteken zijn letterlijke tekens. Met de tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die eindigen op de letter 't'. ". De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.
Deze methode is niet recursief.
Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.
Jokertekens zijn toegestaan. Met de searchPattern tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle mapnamen die path eindigen op de letter 't'. De searchPattern tekenreeks 's*' zoekt naar alle mapnamen in path het begin met de letter 's'.
De tekenreeks '.' kan alleen worden gebruikt searchPattern als deze is opgegeven als onderdeel van een geldige mapnaam, zoals in de mapnaam a.. b". Het kan niet worden gebruikt om de adreslijsthiërarchie omhoog te verplaatsen. Als er geen bestanden of mappen zijn of geen bestanden of mappen die overeenkomen met de searchPattern tekenreeks in de DirectoryInfo, retourneert deze methode een lege matrix.
Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld:
Van toepassing op
GetFileSystemInfos(String, SearchOption)
Hiermee haalt u een matrix van FileSystemInfo objecten op die de bestanden en submappen vertegenwoordigen die overeenkomen met de opgegeven zoekcriteria.
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()
Parameters
- searchPattern
- String
De zoekreeks die overeenkomt met de namen van mappen en bestanden. Deze parameter kan een combinatie van geldig letterlijke tekens en jokertekens (* en ?) bevatten, maar biedt geen ondersteuning voor reguliere expressies.
- searchOption
- SearchOption
Een van de opsommingswaarden die aangeeft of de zoekbewerking alleen de huidige map of alle submappen moet bevatten. De standaardwaarde is TopDirectoryOnly.
Retouren
Een matrix met bestandssysteemvermeldingen die voldoen aan de zoekcriteria.
Uitzonderingen
.NET Framework- en .NET Core-versies ouder dan 2.1: searchPattern bevat een of meer ongeldige tekens die zijn gedefinieerd door de methode GetInvalidPathChars().
searchPattern is null.
searchOption is geen geldige SearchOption waarde.
Het opgegeven pad is ongeldig (bijvoorbeeld op een niet-toegewezen station).
De beller heeft niet de vereiste machtiging.
Opmerkingen
searchPattern kan een combinatie zijn van letterlijke tekens en jokertekens, maar biedt geen ondersteuning voor reguliere expressies. De volgende jokertekenaanduidingen zijn toegestaan in searchPattern.
| Jokertekenaanduiding | Overeenkomsten |
|---|---|
| * (sterretje) | Nul of meer tekens op die positie. |
| ? (vraagteken) | Nul of één teken op die positie. |
Andere tekens dan het jokerteken zijn letterlijke tekens. Met de tekenreeks '*t' wordt bijvoorbeeld gezocht naar alle namen die eindigen op de letter 't'. ". De searchPattern tekenreeks 's*' zoekt naar alle namen in path het begin met de letter 's'.
Voor submappen kunnen de FileSystemInfo objecten die door deze methode worden geretourneerd, worden omgezet in de afgeleide klasse DirectoryInfo. Gebruik de FileAttributes waarde die door de FileSystemInfo.Attributes eigenschap wordt geretourneerd om te bepalen of het FileSystemInfo een bestand of map vertegenwoordigt.
Met deze methode worden de waarden van de volgende FileSystemInfo eigenschappen vooraf ingevuld: