DirectoryInfo.GetFileSystemInfos 方法
定义
检索表示当前目录的文件和子目录的强类型 FileSystemInfo 对象的数组。Retrieves an array of strongly typed FileSystemInfo objects representing files and subdirectories of the current directory.
重载
| GetFileSystemInfos() |
返回表示某个目录中所有文件和子目录的强类型 FileSystemInfo 项的数组。Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory. |
| GetFileSystemInfos(String) |
检索表示与指定的搜索条件匹配的文件和子目录的强类型 FileSystemInfo 对象的数组。Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria. |
| GetFileSystemInfos(String, EnumerationOptions) |
检索强类型 FileSystemInfo 对象的数组,这些对象表示与指定的搜索模式和枚举选项匹配的文件和子目录。Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search pattern and enumeration options. |
| GetFileSystemInfos(String, SearchOption) |
检索表示与指定的搜索条件匹配的文件和子目录的 FileSystemInfo 对象的数组。Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria. |
GetFileSystemInfos()
返回表示某个目录中所有文件和子目录的强类型 FileSystemInfo 项的数组。Returns an array of strongly typed FileSystemInfo entries representing all the files and subdirectories in a directory.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos ();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()
返回
强类型 FileSystemInfo 项的数组。An array of strongly typed FileSystemInfo entries.
例外
路径无效(例如,它位于未映射的驱动器上)。The path is invalid (for example, it is on an unmapped drive).
示例
下面的示例对指定目录下的文件和目录进行计数。The following example counts the files and directories under the specified directory.
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++;
}
}
}
}
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
注解
如果中没有任何文件或目录,则 DirectoryInfo 此方法返回一个空数组。If there are no files or directories in the DirectoryInfo, this method returns an empty array. 此方法不是递归的。This method is not recursive.
对于子目录, FileSystemInfo 此方法返回的对象可以转换为派生类 DirectoryInfo 。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. 使用 FileAttributes 由属性返回的值 FileSystemInfo.Attributes 来确定是 FileSystemInfo 表示文件还是目录。Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.
此方法预先填充以下属性的值 FileSystemInfo :This method pre-populates the values of the following FileSystemInfo properties:
另请参阅
- FileSystemInfo
- FileSystemWatcher
- 文件和流 I/OFile and Stream I/O
- 如何:从文件中读取文本How to: Read Text from a File
- 如何:将文本写入文件How to: Write Text to a File
适用于
GetFileSystemInfos(String)
检索表示与指定的搜索条件匹配的文件和子目录的强类型 FileSystemInfo 对象的数组。Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search criteria.
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()
参数
- searchPattern
- String
要与目录和文件的名称匹配的搜索字符串。The search string to match against the names of directories and files. 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.
返回
与搜索条件匹配的强类型 FileSystemInfo 对象的数组。An array of strongly typed FileSystemInfo objects matching the search criteria.
例外
searchPattern 包含一个或多个 GetInvalidPathChars() 方法定义的无效字符。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.
searchPattern 为 null。searchPattern is null.
指定的路径无效(例如,它位于未映射的驱动器上)。The specified path is invalid (for example, it is on an unmapped drive).
调用方没有所要求的权限。The caller does not have the required permission.
示例
下面的示例计算与指定的搜索模式匹配的文件和目录。The following example counts the files and directories that match the specified search pattern.
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++;
}
}
}
}
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
注解
searchPattern 可以是文字和通配符的组合,但不支持正则表达式。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. 中允许使用以下通配符说明符 searchPattern 。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. 例如,字符串 " * t" 搜索以字母 "t" 结尾的所有名称。For example, the string "*t" searches for all names in ending with the letter "t". ".". searchPattern字符串 "s * " 搜索以 path 字母 "s" 开头的所有名称。The searchPattern string "s*" searches for all names in path beginning with the letter "s".
此方法不是递归的。This method is not recursive.
对于子目录, FileSystemInfo 此方法返回的对象可以转换为派生类 DirectoryInfo 。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. 使用 FileAttributes 由属性返回的值 FileSystemInfo.Attributes 来确定是 FileSystemInfo 表示文件还是目录。Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.
允许使用通配符。Wild cards are permitted. 例如, searchPattern 字符串 " * t" 搜索以 path 字母 "t" 结尾的所有目录名称。For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". searchPattern字符串 "s * " 搜索以 path 字母 "s" 开头的所有目录名称。The searchPattern string "s*" searches for all directory names in path beginning with the letter "s".
如果将字符串 ".." searchPattern 指定为有效目录名称的一部分,则只能在中使用字符串 "..."。b "。The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". 它不能用来向上移动目录层次结构。It cannot be used to move up the directory hierarchy. 如果没有文件或目录,或者没有与中的字符串匹配的文件或目录,则 searchPattern DirectoryInfo 此方法返回一个空数组。If there are no files or directories, or no files or directories that match the searchPattern string in the DirectoryInfo, this method returns an empty array.
此方法预先填充以下属性的值 FileSystemInfo :This method pre-populates the values of the following FileSystemInfo properties:
另请参阅
- FileSystemInfo
- FileSystemWatcher
- 文件和流 I/OFile and Stream I/O
- 如何:从文件中读取文本How to: Read Text from a File
- 如何:将文本写入文件How to: Write Text to a File
适用于
GetFileSystemInfos(String, EnumerationOptions)
检索强类型 FileSystemInfo 对象的数组,这些对象表示与指定的搜索模式和枚举选项匹配的文件和子目录。Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories that match the specified search pattern and enumeration options.
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()
参数
- searchPattern
- String
要与目录和文件的名称匹配的搜索字符串。The search string to match against the names of directories and files. 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。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.
返回
与 searchPattern 和 enumerationOptions 匹配的强类型 FileSystemInfo 对象的数组。An array of strongly typed FileSystemInfo objects matching searchPattern and enumerationOptions.
例外
searchPattern 包含一个或多个 GetInvalidPathChars() 方法定义的无效字符。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.
searchPattern 为 null。searchPattern is null.
指定的路径无效(例如,它位于未映射的驱动器上)。The specified path is invalid (for example, it is on an unmapped drive).
调用方没有所要求的权限。The caller does not have the required permission.
注解
searchPattern 可以是文字和通配符的组合,但不支持正则表达式。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. 中允许使用以下通配符说明符 searchPattern 。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. 例如,字符串 " * t" 搜索以字母 "t" 结尾的所有名称。For example, the string "*t" searches for all names in ending with the letter "t". ".". searchPattern字符串 "s * " 搜索以 path 字母 "s" 开头的所有名称。The searchPattern string "s*" searches for all names in path beginning with the letter "s".
此方法不是递归的。This method is not recursive.
对于子目录, FileSystemInfo 此方法返回的对象可以转换为派生类 DirectoryInfo 。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. 使用 FileAttributes 由属性返回的值 FileSystemInfo.Attributes 来确定是 FileSystemInfo 表示文件还是目录。Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.
允许使用通配符。Wild cards are permitted. 例如, searchPattern 字符串 " * t" 搜索以 path 字母 "t" 结尾的所有目录名称。For example, the searchPattern string "*t" searches for all directory names in path ending with the letter "t". searchPattern字符串 "s * " 搜索以 path 字母 "s" 开头的所有目录名称。The searchPattern string "s*" searches for all directory names in path beginning with the letter "s".
如果将字符串 ".." searchPattern 指定为有效目录名称的一部分,则只能在中使用字符串 "..."。b "。The string ".." can only be used in searchPattern if it is specified as a part of a valid directory name, such as in the directory name "a..b". 它不能用来向上移动目录层次结构。It cannot be used to move up the directory hierarchy. 如果没有文件或目录,或者没有与中的字符串匹配的文件或目录,则 searchPattern DirectoryInfo 此方法返回一个空数组。If there are no files or directories, or no files or directories that match the searchPattern string in the DirectoryInfo, this method returns an empty array.
此方法预先填充以下属性的值 FileSystemInfo :This method pre-populates the values of the following FileSystemInfo properties:
适用于
GetFileSystemInfos(String, SearchOption)
检索表示与指定的搜索条件匹配的文件和子目录的 FileSystemInfo 对象的数组。Retrieves an array of FileSystemInfo objects that represent the files and subdirectories matching the specified search criteria.
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()
参数
- searchPattern
- String
要与目录和文件的名称匹配的搜索字符串。The search string to match against the names of directories and files. 此参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式。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. 默认值是 TopDirectoryOnly。The default value is TopDirectoryOnly.
返回
与搜索条件匹配的文件系统项的数组。An array of file system entries that match the search criteria.
例外
searchPattern 包含一个或多个 GetInvalidPathChars() 方法定义的无效字符。searchPattern contains one or more invalid characters defined by the GetInvalidPathChars() method.
searchPattern 为 null。searchPattern is null.
searchOption 不是有效的 SearchOption 值。searchOption is not a valid SearchOption value.
指定的路径无效(例如,它位于未映射的驱动器上)。The specified path is invalid (for example, it is on an unmapped drive).
调用方没有所要求的权限。The caller does not have the required permission.
注解
searchPattern 可以是文字和通配符的组合,但不支持正则表达式。searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. 中允许使用以下通配符说明符 searchPattern 。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. 例如,字符串 " * t" 搜索以字母 "t" 结尾的所有名称。For example, the string "*t" searches for all names in ending with the letter "t". ".". searchPattern字符串 "s * " 搜索以 path 字母 "s" 开头的所有名称。The searchPattern string "s*" searches for all names in path beginning with the letter "s".
对于子目录, FileSystemInfo 此方法返回的对象可以转换为派生类 DirectoryInfo 。For subdirectories, the FileSystemInfo objects returned by this method can be cast to the derived class DirectoryInfo. 使用 FileAttributes 由属性返回的值 FileSystemInfo.Attributes 来确定是 FileSystemInfo 表示文件还是目录。Use the FileAttributes value returned by the FileSystemInfo.Attributes property to determine whether the FileSystemInfo represents a file or a directory.
此方法预先填充以下属性的值 FileSystemInfo :This method pre-populates the values of the following FileSystemInfo properties: