DirectoryInfo.GetFiles 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 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 enumerationOptions
ile 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 searchPattern
DirectoryInfoeş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 searchPattern
eşleşebilir. Dosya uzantısı bir, iki veya üçten fazla karakter olan A searchPattern
, yalnızca içinde belirtilen searchPattern
dosya 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 searchPattern
DirectoryInfoeş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 searchPattern
eşleşebilir. Dosya uzantısı bir, iki veya üçten fazla karakter olan A searchPattern
, yalnızca içinde belirtilen searchPattern
dosya 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:
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 searchPattern
DirectoryInfoeş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 searchPattern
eşleşer. Dosya uzantısı bir, iki veya üçten fazla karakter olan A searchPattern
, yalnızca içinde belirtilen searchPattern
dosya 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: