DirectoryInfo.GetFileSystemInfos Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Geçerli dizinin dosyalarını ve alt dizinlerini temsil eden kesin olarak belirlenmiş FileSystemInfo nesne dizisini alır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| GetFileSystemInfos() |
Bir dizindeki tüm dosyaları ve alt dizinleri temsil eden kesin olarak belirlenmiş FileSystemInfo girdiler dizisi döndürür. |
| GetFileSystemInfos(String) |
Belirtilen arama ölçütleriyle eşleşen dosyaları ve alt dizinleri temsil eden kesin olarak belirlenmiş FileSystemInfo nesne dizisini alır. |
| GetFileSystemInfos(String, EnumerationOptions) |
Belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen dosyaları ve alt dizinleri temsil eden kesin olarak belirlenmiş FileSystemInfo nesne dizisini alır. |
| GetFileSystemInfos(String, SearchOption) |
Belirtilen arama ölçütleriyle eşleşen dosyaları ve alt dizinleri temsil eden bir nesne dizisi FileSystemInfo alır. |
GetFileSystemInfos()
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
Bir dizindeki tüm dosyaları ve alt dizinleri temsil eden kesin olarak belirlenmiş FileSystemInfo girdiler dizisi döndürür.
public:
cli::array <System::IO::FileSystemInfo ^> ^ GetFileSystemInfos();
public System.IO.FileSystemInfo[] GetFileSystemInfos();
member this.GetFileSystemInfos : unit -> System.IO.FileSystemInfo[]
Public Function GetFileSystemInfos () As FileSystemInfo()
Döndürülenler
Kesin türemiş FileSystemInfo girdi dizisi.
Özel durumlar
Yol geçersiz (örneğin, eşlenmemiş bir sürücüde).
Örnekler
Aşağıdaki örnek, belirtilen dizin altındaki dosyaları ve dizinleri sayar.
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
Açıklamalar
içinde DirectoryInfodosya veya dizin yoksa, bu yöntem boş bir dizi döndürür. Bu yöntem özyinelemeli değildir.
Alt dizinler için, FileSystemInfo bu yöntem tarafından döndürülen nesneler türetilmiş sınıfına DirectoryInfoyayınlanabilir. FileAttributes özelliği tarafından döndürülen değeri kullanarak öğesinin FileSystemInfo.Attributes bir dosyayı veya dizini temsil edip etmediğini FileSystemInfo belirleyin.
Bu yöntem, aşağıdaki FileSystemInfo özelliklerin değerlerini önceden doldurur:
Ayrıca bkz.
- FileSystemInfo
- FileSystemWatcher
- Dosya ve Akış G/Ç'si
- Nasıl yapılır: Dosyadan Metin Okuma
- Nasıl yapılır: Dosyaya Metin Yazma
Şunlara uygulanır
GetFileSystemInfos(String)
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
Belirtilen arama ölçütleriyle eşleşen dosyaları ve alt dizinleri temsil eden kesin olarak belirlenmiş FileSystemInfo nesne dizisini alır.
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()
Parametreler
- searchPattern
- String
Dizinlerin ve dosyaların adlarına göre eşleşecek arama dizesi. Bu parametre geçerli değişmez değer yolu ile joker karakter (* ve ?) karakterlerin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.
Döndürülenler
Arama ölçütleri ile eşleşen kesin olarak yazılan FileSystemInfo nesneler dizisi.
Özel durumlar
2.1'den eski .NET Framework ve .NET Core sürümleri: searchPattern yöntemi tarafından GetInvalidPathChars() tanımlanan bir veya daha fazla geçersiz karakter içerir.
searchPattern, null'e eşittir.
Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).
Çağıranın gerekli izni yok.
Örnekler
Aşağıdaki örnek, belirtilen arama düzeniyle eşleşen dosyaları ve dizinleri sayar.
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
Açıklamalar
searchPattern değişmez karakter ve joker karakterlerin birleşimi olabilir, ancak normal ifadeleri desteklemez. içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.
| Joker karakter tanımlayıcısı | Eşleşmeler |
|---|---|
| * (yıldız işareti) | Bu konumda sıfır veya daha fazla karakter. |
| ? (soru işareti) | Bu konumda sıfır veya bir karakter. |
Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, "*t" dizesi "t" harfiyle biten tüm adları arar. ".
searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.
Bu yöntem özyinelemeli değildir.
Alt dizinler için, FileSystemInfo bu yöntem tarafından döndürülen nesneler türetilmiş sınıfına DirectoryInfoyayınlanabilir. FileAttributes özelliği tarafından döndürülen değeri kullanarak öğesinin FileSystemInfo.Attributes bir dosyayı veya dizini temsil edip etmediğini FileSystemInfo belirleyin.
Joker karakterlere izin verilir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm dizin adlarını path arar.
searchPattern"s*" dizesi, "s" harfiyle başlayarak tüm dizin adlarını path arar.
".." dizesi yalnızca geçerli bir dizin adının parçası olarak belirtilirse (örneğin, "a.. dizin adında) kullanılabilir searchPattern . b". Dizin hiyerarşisini yukarı taşımak için kullanılamaz. dosya veya dizin yoksa veya içindeki dizeyle searchPattern eşleşen dosya ya da DirectoryInfodizin yoksa, bu yöntem boş bir dizi döndürür.
Bu yöntem, aşağıdaki FileSystemInfo özelliklerin değerlerini önceden doldurur:
Ayrıca bkz.
- FileSystemInfo
- FileSystemWatcher
- Dosya ve Akış G/Ç'si
- Nasıl yapılır: Dosyadan Metin Okuma
- Nasıl yapılır: Dosyaya Metin Yazma
Şunlara uygulanır
GetFileSystemInfos(String, EnumerationOptions)
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
Belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen dosyaları ve alt dizinleri temsil eden kesin olarak belirlenmiş FileSystemInfo nesne dizisini alır.
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()
Parametreler
- searchPattern
- String
Dizinlerin ve dosyaların adlarına göre eşleşecek arama dizesi. Bu parametre geçerli değişmez değer yolu ile joker karakter (* ve ?) karakterlerin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.
- enumerationOptions
- EnumerationOptions
Kullanılacak arama ve numaralandırma yapılandırmasını açıklayan nesne.
Döndürülenler
ve enumerationOptionsile eşleşen searchPattern kesin türe sahip FileSystemInfo bir nesne dizisi.
Özel durumlar
2.1'den eski .NET Framework ve .NET Core sürümleri: searchPattern yöntemi tarafından GetInvalidPathChars() tanımlanan bir veya daha fazla geçersiz karakter içerir.
searchPattern, null'e eşittir.
Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).
Çağıranın gerekli izni yok.
Açıklamalar
searchPattern değişmez karakter ve joker karakterlerin birleşimi olabilir, ancak normal ifadeleri desteklemez. içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.
| Joker karakter tanımlayıcısı | Eşleşmeler |
|---|---|
| * (yıldız işareti) | Bu konumda sıfır veya daha fazla karakter. |
| ? (soru işareti) | Bu konumda sıfır veya bir karakter. |
Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, "*t" dizesi "t" harfiyle biten tüm adları arar. ".
searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.
Bu yöntem özyinelemeli değildir.
Alt dizinler için, FileSystemInfo bu yöntem tarafından döndürülen nesneler türetilmiş sınıfına DirectoryInfoyayınlanabilir. FileAttributes özelliği tarafından döndürülen değeri kullanarak öğesinin FileSystemInfo.Attributes bir dosyayı veya dizini temsil edip etmediğini FileSystemInfo belirleyin.
Joker karakterlere izin verilir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm dizin adlarını path arar.
searchPattern"s*" dizesi, "s" harfiyle başlayarak tüm dizin adlarını path arar.
".." dizesi yalnızca geçerli bir dizin adının parçası olarak belirtilirse (örneğin, "a.. dizin adında) kullanılabilir searchPattern . b". Dizin hiyerarşisini yukarı taşımak için kullanılamaz. dosya veya dizin yoksa veya içindeki dizeyle searchPattern eşleşen dosya ya da DirectoryInfodizin yoksa, bu yöntem boş bir dizi döndürür.
Bu yöntem, aşağıdaki FileSystemInfo özelliklerin değerlerini önceden doldurur:
Şunlara uygulanır
GetFileSystemInfos(String, SearchOption)
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
- Kaynak:
- DirectoryInfo.cs
Belirtilen arama ölçütleriyle eşleşen dosyaları ve alt dizinleri temsil eden bir nesne dizisi FileSystemInfo alır.
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()
Parametreler
- searchPattern
- String
Dizinlerin ve dosyaların adlarına göre eşleşecek arama dizesi. Bu parametre geçerli değişmez değer yolu ile joker karakter (* ve ?) karakterlerin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.
- searchOption
- SearchOption
Arama işleminin yalnızca geçerli dizini mi yoksa tüm alt dizinleri mi içermesi gerektiğini belirten numaralandırma değerlerinden biri. Varsayılan değer TopDirectoryOnly değeridir.
Döndürülenler
Arama ölçütleriyle eşleşen dosya sistemi girdileri dizisi.
Özel durumlar
2.1'den eski .NET Framework ve .NET Core sürümleri: searchPattern yöntemi tarafından GetInvalidPathChars() tanımlanan bir veya daha fazla geçersiz karakter içerir.
searchPattern, null'e eşittir.
searchOption geçerli SearchOption bir değer değil.
Belirtilen yol geçersiz (örneğin, eşlenmemiş bir sürücüde).
Çağıranın gerekli izni yok.
Açıklamalar
searchPattern değişmez karakter ve joker karakterlerin birleşimi olabilir, ancak normal ifadeleri desteklemez. içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.
| Joker karakter tanımlayıcısı | Eşleşmeler |
|---|---|
| * (yıldız işareti) | Bu konumda sıfır veya daha fazla karakter. |
| ? (soru işareti) | Bu konumda sıfır veya bir karakter. |
Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, "*t" dizesi "t" harfiyle biten tüm adları arar. ".
searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.
Alt dizinler için, FileSystemInfo bu yöntem tarafından döndürülen nesneler türetilmiş sınıfına DirectoryInfoyayınlanabilir. FileAttributes özelliği tarafından döndürülen değeri kullanarak öğesinin FileSystemInfo.Attributes bir dosyayı veya dizini temsil edip etmediğini FileSystemInfo belirleyin.
Bu yöntem, aşağıdaki FileSystemInfo özelliklerin değerlerini önceden doldurur: