DirectoryInfo.GetFiles Yöntem

Tanım

Geçerli dizinden bir dosya listesi döndürür.

Aşırı Yüklemeler

GetFiles(String, EnumerationOptions)

Belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen geçerli dizinden bir dosya listesi döndürür.

GetFiles(String, SearchOption)

Verilen arama düzeniyle eşleşen ve alt dizinlerde arama yapılıp yapılmayacağını belirlemek için bir değer kullanan geçerli dizinden bir dosya listesi döndürür.

GetFiles()

Geçerli dizinden bir dosya listesi döndürür.

GetFiles(String)

Verilen arama deseni ile eşleşen geçerli dizinden bir dosya listesi döndürür.

GetFiles(String, EnumerationOptions)

Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs

Belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen geçerli dizinden bir dosya listesi döndürür.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::EnumerationOptions ^ enumerationOptions);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.EnumerationOptions enumerationOptions);
member this.GetFiles : string * System.IO.EnumerationOptions -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, enumerationOptions As EnumerationOptions) As FileInfo()

Parametreler

searchPattern
String

Dosya adlarına uyması için arama dizesi. Bu parametre geçerli değişmez değer yolu ve joker karakter (* ve ?) karakterlerinin bir bileşimini içerebilir, ancak normal ifadeleri desteklemez.

enumerationOptions
EnumerationOptions

Kullanılacak arama ve numaralandırma yapılandırmasını açıklayan bir nesne.

Döndürülenler

ve enumerationOptionsile eşleşen searchPattern kesin olarak belirlenmiş FileInfo 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çeriyor.

searchPattern, null değeridir.

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 konumdaki 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.

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir:

  • kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce nesne koleksiyonunu FileInfo listelemeye başlayabilirsiniz.

  • kullandığınızda GetFiles, diziye erişebilmeniz için önce nesne dizisinin tamamının FileInfo döndürülmesini beklemeniz gerekir.

Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

içinde DirectoryInfohiç dosya yoksa, bu yöntem boş bir dizi döndürür.

parametresinde searchPattern aşağıdaki joker karakter tanımlayıcılara izin verilir.

Joker karakter Description
* Sıfır veya daha fazla karakter.
? Tam olarak sıfır veya bir karakter.

Döndürülen dosya adlarının sırası garanti değildir; Sort belirli bir sıralama düzeni gerekiyorsa yöntemini kullanın.

Joker karakterlere izin verilir. Örneğin, searchPattern "*.txt" dizesi "txt" uzantısına sahip tüm dosya adlarını arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm dosya adlarını arar. içinde dizeyle searchPatternDirectoryInfoeşleşen dosya veya dosya yoksa, bu yöntem boş bir dizi döndürür.

Not

Bir searchPattern içinde yıldız joker karakteri kullanılırken (örneğin, "*.txt"), eşleşen davranış belirtilen dosya uzantısının uzunluğuna bağlı olarak değişir. searchPattern Dosya uzantısı tam olarak üç karakter olan A, uzantısı üç veya daha fazla karakter olan dosyaları döndürür; burada ilk üç karakter içinde belirtilen dosya uzantısıyla searchPatterneşleşebilir. Dosya uzantısı bir, iki veya üçten fazla karakter olan A searchPattern , yalnızca içinde belirtilen searchPatterndosya uzantısıyla eşleşen tam olarak bu uzunlukta uzantılara sahip dosyaları döndürür. Soru işareti joker karakteri kullanılırken, bu yöntem yalnızca belirtilen dosya uzantısıyla eşleşen dosyaları döndürür. Örneğin, bir dizindeki "file1.txt" ve "file1.txtother" adlı iki dosya verüldüğünde, "file?.txt" arama deseni yalnızca ilk dosyayı döndürürken, "file*.txt" arama deseni her iki dosyayı da döndürür.

Not

Bu yöntem hem 8.3 dosya adı biçimine hem de uzun dosya adı biçimine sahip dosya adlarını denetlediğinden, "*1*.txt" benzeri bir arama düzeni beklenmeyen dosya adları döndürebilir. Örneğin, eşdeğer 8,3 dosya adı biçimi "longf~1.txt" olabileceğinden, "*1*.txt" arama deseni kullanıldığında "longfilename.txt" döndürülecektir.

Bu yöntem, aşağıdaki FileInfo özelliklerin değerlerini önceden doldurur:

Şunlara uygulanır

GetFiles(String, SearchOption)

Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs

Geçerli dizinden verilen arama düzeniyle eşleşen ve alt dizinlerde arama yapılıp yapılmayacağını belirlemek için bir değer kullanan bir dosya listesi döndürür.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern, System::IO::SearchOption searchOption);
public System.IO.FileInfo[] GetFiles (string searchPattern, System.IO.SearchOption searchOption);
member this.GetFiles : string * System.IO.SearchOption -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String, searchOption As SearchOption) As FileInfo()

Parametreler

searchPattern
String

Dosya adlarına uyması için arama dizesi. Bu parametre geçerli değişmez değer yolu ve joker karakter (* ve ?) karakterlerinin 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.

Döndürülenler

türünde FileInfobir dizi.

Ö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çeriyor.

searchPattern, null değeridir.

searchOption geçerli SearchOption bir değer değil.

Yol geçersiz (örneğin, eşlenmemiş bir sürücüde).

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki örnekte, farklı arama seçeneklerini kullanarak bir dizinden dosya listesinin nasıl alındığı gösterilmektedir. Örnekte log1.txt, log2.txt, test1.txt, test2.txt, test3.txt adlı dosyalara ve SubFile.txt adlı bir dosyaya sahip bir alt dizine sahip olduğu varsayılır.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{fi.Name}"
(*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.GetFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.GetFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

Açıklamalar

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir:

  • kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce nesne koleksiyonunu FileInfo listelemeye başlayabilirsiniz.

  • kullandığınızda GetFiles, diziye erişebilmeniz için önce nesne dizisinin tamamının FileInfo döndürülmesini beklemeniz gerekir.

Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

içinde DirectoryInfohiç dosya yoksa, bu yöntem boş bir dizi döndürür.

içinde aşağıdaki joker karakter tanımlayıcılara izin verilir searchPattern.

Joker karakter Description
* (yıldız işareti) Sıfır veya daha fazla karakter.
? (soru işareti) Tam olarak sıfır veya bir karakter.

Döndürülen dosya adlarının sırası garanti değildir; Sort belirli bir sıralama düzeni gerekiyorsa yöntemini kullanın.

Joker karakterlere izin verilir. Örneğin, searchPattern "*.txt" dizesi "txt" uzantısına sahip tüm dosya adlarını arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm dosya adlarını arar. içinde dizeyle searchPatternDirectoryInfoeşleşen dosya veya dosya yoksa, bu yöntem boş bir dizi döndürür.

Not

Bir searchPattern içinde yıldız joker karakteri kullanılırken (örneğin, "*.txt"), eşleşen davranış belirtilen dosya uzantısının uzunluğuna bağlı olarak değişir. searchPattern Dosya uzantısı tam olarak üç karakter olan A, uzantısı üç veya daha fazla karakter olan dosyaları döndürür; burada ilk üç karakter içinde belirtilen dosya uzantısıyla searchPatterneşleşebilir. Dosya uzantısı bir, iki veya üçten fazla karakter olan A searchPattern , yalnızca içinde belirtilen searchPatterndosya uzantısıyla eşleşen tam olarak bu uzunlukta uzantılara sahip dosyaları döndürür. Soru işareti joker karakteri kullanılırken, bu yöntem yalnızca belirtilen dosya uzantısıyla eşleşen dosyaları döndürür. Örneğin, bir dizindeki "file1.txt" ve "file1.txtother" adlı iki dosya verüldüğünde, "file?.txt" arama deseni yalnızca ilk dosyayı döndürürken, "file*.txt" arama deseni her iki dosyayı da döndürür.

Aşağıdaki listede parametresi için searchPattern farklı uzunlukların davranışı gösterilmektedir:

  • "*.abc", .abc, .abcd, .abcde, .abcdef vb. uzantılı dosyaları döndürür.

  • "*.abcd" yalnızca uzantısı .abcd olan dosyaları döndürür.

  • "*.abcde", yalnızca uzantısı .abcde olan dosyaları döndürür.

  • "*.abcdef", yalnızca uzantısı .abcdef olan dosyaları döndürür.

Not

Bu yöntem hem 8.3 dosya adı biçimine hem de uzun dosya adı biçimine sahip dosya adlarını denetlediğinden, "*1*.txt" benzeri bir arama düzeni beklenmeyen dosya adları döndürebilir. Örneğin, eşdeğer 8,3 dosya adı biçimi "longf~1.txt" olabileceğinden, "*1*.txt" arama deseni kullanıldığında "longfilename.txt" döndürülecektir.

Bu yöntem, aşağıdaki FileInfo özelliklerin değerlerini önceden doldurur:

  1. Attributes

  2. CreationTime

  3. CreationTimeUtc

  4. LastAccessTime

  5. LastAccessTimeUtc

  6. LastWriteTime

  7. LastWriteTimeUtc

  8. Length

Ayrıca bkz.

Şunlara uygulanır

GetFiles()

Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs

Geçerli dizinden bir dosya listesi döndürür.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles();
public System.IO.FileInfo[] GetFiles ();
member this.GetFiles : unit -> System.IO.FileInfo[]
Public Function GetFiles () As FileInfo()

Döndürülenler

türünde FileInfobir dizi.

Özel durumlar

Yol, eşlenmemiş bir sürücüde olmak gibi geçersiz.

Örnekler

Aşağıdaki örnekte, farklı arama seçeneklerini kullanarak bir dizinden dosya listesinin nasıl alındığı gösterilmektedir. Örnekte, log1.txt, log2.txt, test1.txt, test2.txt, test3.txt adlı dosyaların ve SubFile.txt adlı bir dosyanın bulunduğu bir alt dizinin bulunduğu bir dizin varsayılır.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{fi.Name}"
(*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.GetFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.GetFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

Açıklamalar

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir:

  • kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce nesne koleksiyonunu FileInfo numaralandırmaya başlayabilirsiniz.

  • kullandığınızda GetFiles, diziye erişebilmeniz için önce nesne dizisinin tamamının FileInfo döndürülmesini beklemeniz gerekir.

Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

içinde DirectoryInfohiç dosya yoksa, bu yöntem boş bir dizi döndürür.

Döndürülen dosya adlarının sırası garanti değildir; Sort belirli bir sıralama düzeni gerekiyorsa yöntemini kullanın.

Bu yöntem, aşağıdaki FileInfo özelliklerin değerlerini önceden doldurur:

Ayrıca bkz.

Şunlara uygulanır

GetFiles(String)

Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs
Kaynak:
DirectoryInfo.cs

Verilen arama deseni ile eşleşen geçerli dizinden bir dosya listesi döndürür.

public:
 cli::array <System::IO::FileInfo ^> ^ GetFiles(System::String ^ searchPattern);
public System.IO.FileInfo[] GetFiles (string searchPattern);
member this.GetFiles : string -> System.IO.FileInfo[]
Public Function GetFiles (searchPattern As String) As FileInfo()

Parametreler

searchPattern
String

Dosya adlarına uyması için 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

türünde FileInfobir dizi.

Ö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 değeridir.

Yol geçersiz (örneğin, eşlenmemiş bir sürücüde).

Çağıranın gerekli izni yok.

Örnekler

Aşağıdaki örnekte, farklı arama seçeneklerini kullanarak bir dizinden dosya listesinin nasıl alındığı gösterilmektedir. Örnekte, log1.txt, log2.txt, test1.txt, test2.txt, test3.txt adlı dosyaların ve SubFile.txt adlı bir dosyanın bulunduğu bir alt dizinin bulunduğu bir dizin varsayılır.

using System;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryInfo di = new DirectoryInfo(@"C:\Users\tomfitz\Documents\ExampleDir");
            Console.WriteLine("No search pattern returns:");
            foreach (var fi in di.GetFiles())
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern *2* returns:");
            foreach (var fi in di.GetFiles("*2*"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern test?.txt returns:");
            foreach (var fi in di.GetFiles("test?.txt"))
            {
                Console.WriteLine(fi.Name);
            }

            Console.WriteLine();

            Console.WriteLine("Search pattern AllDirectories returns:");
            foreach (var fi in di.GetFiles("*", SearchOption.AllDirectories))
            {
                Console.WriteLine(fi.Name);
            }
        }
    }
}
/*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .

*/
open System.IO

let di = DirectoryInfo @"C:\Users\tomfitz\Documents\ExampleDir"
printfn "No search pattern returns:"
for fi in di.GetFiles() do
    printfn $"{fi.Name}"

printfn "\nSearch pattern *2* returns:"
for fi in di.GetFiles "*2*" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern test?.txt returns:"
for fi in di.GetFiles "test?.txt" do
    printfn $"{fi.Name}"

printfn "\nSearch pattern AllDirectories returns:"
for fi in di.GetFiles("*", SearchOption.AllDirectories) do
    printfn $"{fi.Name}"
(*
This code produces output similar to the following:

No search pattern returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt

Search pattern *2* returns:
log2.txt
test2.txt

Search pattern test?.txt returns:
test1.txt
test2.txt
test3.txt

Search pattern AllDirectories returns:
log1.txt
log2.txt
test1.txt
test2.txt
test3.txt
SubFile.txt
Press any key to continue . . .
*)
Imports System.IO

Module Module1

    Sub Main()
        Dim di As DirectoryInfo = New DirectoryInfo("C:\ExampleDir")
        Console.WriteLine("No search pattern returns:")
        For Each fi In di.GetFiles()
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern *2* returns:")
        For Each fi In di.GetFiles("*2*")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern test?.txt returns:")
        For Each fi In di.GetFiles("test?.txt")
            Console.WriteLine(fi.Name)
        Next

        Console.WriteLine()

        Console.WriteLine("Search pattern AllDirectories returns:")
        For Each fi In di.GetFiles("*", SearchOption.AllDirectories)
            Console.WriteLine(fi.Name)
        Next
    End Sub

End Module

' This code produces output similar to the following:

' No search pattern returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt

' Search pattern *2* returns:
' log2.txt
' test2.txt

' Search pattern test?.txt returns:
' test1.txt
' test2.txt
' test3.txt

' Search pattern AllDirectories returns:
' log1.txt
' log2.txt
' test1.txt
' test2.txt
' test3.txt
' SubFile.txt
' Press any key to continue . . .

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.

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir:

  • kullandığınızda EnumerateFiles, tüm koleksiyon döndürülmeden önce nesne koleksiyonunu FileInfo numaralandırmaya başlayabilirsiniz.

  • kullandığınızda GetFiles, diziye erişebilmeniz için önce nesne dizisinin tamamının FileInfo döndürülmesini beklemeniz gerekir.

Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

içinde DirectoryInfohiç dosya yoksa, bu yöntem boş bir dizi döndürür.

Parametresinde aşağıdaki joker karakter tanımlayıcılara searchPattern izin verilir.

Joker karakter Description
* Sıfır veya daha fazla karakter.
? Tam olarak sıfır veya bir karakter.

Döndürülen dosya adlarının sırası garanti değildir; Sort belirli bir sıralama düzeni gerekiyorsa yöntemini kullanın.

Joker karakterlere izin verilir. Örneğin, searchPattern "*.txt" dizesi "txt" uzantısına sahip tüm dosya adlarını arar. searchPattern"s*" dizesi , "s" harfiyle başlayan tüm dosya adlarını arar. içinde dizeyle searchPatternDirectoryInfoeşleşen dosya veya dosya yoksa, bu yöntem boş bir dizi döndürür.

Not

Bir searchPattern içinde yıldız joker karakteri kullanılırken ("*.txt"), eşleşen davranış belirtilen dosya uzantısının uzunluğuna bağlı olarak değişir. searchPattern Dosya uzantısı tam olarak üç karakter olan A, üç veya daha fazla karakter uzantılı dosyaları döndürür; burada ilk üç karakter içinde belirtilen dosya uzantısıyla searchPatterneşleşer. Dosya uzantısı bir, iki veya üçten fazla karakter olan A searchPattern , yalnızca içinde belirtilen searchPatterndosya uzantısıyla eşleşen tam olarak bu uzunlukta uzantılara sahip dosyaları döndürür. Soru işareti joker karakteri kullanılırken, bu yöntem yalnızca belirtilen dosya uzantısıyla eşleşen dosyaları döndürür. Örneğin, bir dizindeki "file1.txt" ve "file1.txtother" adlı iki dosya ver alındığında, "file?.txt" arama deseni yalnızca ilk dosyayı döndürürken, "file*.txt" arama deseni her iki dosyayı da döndürür.

Not

Bu yöntem hem 8.3 dosya adı biçimine hem de uzun dosya adı biçimine sahip dosya adlarını denetlediğinden, "*1*.txt" benzeri bir arama düzeni beklenmeyen dosya adları döndürebilir. Örneğin, eşdeğer 8,3 dosya adı biçimi "longf~1.txt" olabileceğinden, "*1*.txt" arama deseni kullanıldığında "longfilename.txt" döndürülecektir.

Bu yöntem, aşağıdaki FileInfo özelliklerin değerlerini önceden doldurur:

Ayrıca bkz.

Şunlara uygulanır