Directory.GetFiles Yöntem

Tanım

Belirtilen ölçütlere uyan dosyaların adlarını döndürür.

Aşırı Yüklemeler

GetFiles(String)

Belirtilen dizindeki dosyaların adlarını (yolları dahil) döndürür.

GetFiles(String, String)

Belirtilen dizinde belirtilen arama deseni ile eşleşen dosyaların adlarını (yolları dahil) döndürür.

GetFiles(String, String, EnumerationOptions)

Belirtilen dizindeki belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen dosyaların adlarını (yolları dahil) döndürür.

GetFiles(String, String, SearchOption)

Alt dizinlerde arama yapılıp yapılmayacağını belirlemek için bir değer kullanarak, belirtilen dizindeki belirtilen arama deseni ile eşleşen dosyaların adlarını (yolları dahil) döndürür.

GetFiles(String)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen dizindeki dosyaların adlarını (yolları dahil) döndürür.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path);
public static string[] GetFiles (string path);
static member GetFiles : string -> string[]
Public Shared Function GetFiles (path As String) As String()

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

Döndürülenler

String[]

Belirtilen dizindeki dosyalar için tam ad dizisi (yollar dahil) veya hiçbir dosya bulunamazsa boş bir dizi.

Özel durumlar

path bir dosya adıdır.

-veya-

Bir ağ hatası oluştu.

Çağıranın gerekli izni yok.

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. yöntemini kullanarak GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

path, null değeridir.

Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.

Belirtilen yol bulunamadı veya geçersiz (örneğin, eşlenmemiş bir sürücüde).

Örnekler

Aşağıdaki örnekte, kullanıcı tarafından belirtilen bir konumdan GetFiles dosya adlarını döndürmek için yönteminin nasıl kullanılacağı gösterilmektedir. Örnek, bu yöntemde ortak olan tüm hataları yakalayacak şekilde yapılandırılmıştır.

// For Directory::GetFiles and Directory::GetDirectories
// For File::Exists, Directory::Exists
using namespace System;
using namespace System::IO;
using namespace System::Collections;

// Insert logic for processing found files here.
void ProcessFile( String^ path )
{
   Console::WriteLine( "Processed file '{0}'.", path );
}


// Process all files in the directory passed in, recurse on any directories 
// that are found, and process the files they contain.
void ProcessDirectory( String^ targetDirectory )
{
   
   // Process the list of files found in the directory.
   array<String^>^fileEntries = Directory::GetFiles( targetDirectory );
   IEnumerator^ files = fileEntries->GetEnumerator();
   while ( files->MoveNext() )
   {
      String^ fileName = safe_cast<String^>(files->Current);
      ProcessFile( fileName );
   }

   
   // Recurse into subdirectories of this directory.
   array<String^>^subdirectoryEntries = Directory::GetDirectories( targetDirectory );
   IEnumerator^ dirs = subdirectoryEntries->GetEnumerator();
   while ( dirs->MoveNext() )
   {
      String^ subdirectory = safe_cast<String^>(dirs->Current);
      ProcessDirectory( subdirectory );
   }
}

int main( int argc, char *argv[] )
{
   for ( int i = 1; i < argc; i++ )
   {
      String^ path = gcnew String(argv[ i ]);
      if ( File::Exists( path ) )
      {
         
         // This path is a file
         ProcessFile( path );
      }
      else
      if ( Directory::Exists( path ) )
      {
         
         // This path is a directory
         ProcessDirectory( path );
      }
      else
      {
         Console::WriteLine( "{0} is not a valid file or directory.", path );
      }

   }
}
// For Directory.GetFiles and Directory.GetDirectories
// For File.Exists, Directory.Exists
using System;
using System.IO;
using System.Collections;

public class RecursiveFileProcessor
{
    public static void Main(string[] args)
    {
        foreach(string path in args)
        {
            if(File.Exists(path))
            {
                // This path is a file
                ProcessFile(path);
            }
            else if(Directory.Exists(path))
            {
                // This path is a directory
                ProcessDirectory(path);
            }
            else
            {
                Console.WriteLine("{0} is not a valid file or directory.", path);
            }
        }
    }

    // Process all files in the directory passed in, recurse on any directories
    // that are found, and process the files they contain.
    public static void ProcessDirectory(string targetDirectory)
    {
        // Process the list of files found in the directory.
        string [] fileEntries = Directory.GetFiles(targetDirectory);
        foreach(string fileName in fileEntries)
            ProcessFile(fileName);

        // Recurse into subdirectories of this directory.
        string [] subdirectoryEntries = Directory.GetDirectories(targetDirectory);
        foreach(string subdirectory in subdirectoryEntries)
            ProcessDirectory(subdirectory);
    }

    // Insert logic for processing found files here.
    public static void ProcessFile(string path)
    {
        Console.WriteLine("Processed file '{0}'.", path);	
    }
}
module RecursiveFileProcessor

open System.IO

// Insert logic for processing found files here.
let processFile path =
    printfn $"Processed file '%s{path}'."

// Process all files in the directory passed in, recurse on any directories
// that are found, and process the files they contain.
let rec processDirectory targetDirectory =
    // Process the list of files found in the directory.
    let fileEntries = Directory.GetFiles targetDirectory
    for fileName in fileEntries do
        processFile fileName

    // Recurse into subdirectories of this directory.
    let subdirectoryEntries = Directory.GetDirectories targetDirectory
    for subdirectory in subdirectoryEntries do
        processDirectory subdirectory

[<EntryPoint>]
let main args =
    for path in args do
        if File.Exists path then
            // This path is a file
            processFile path
        elif Directory.Exists path then
            // This path is a directory
            processDirectory path
        else
            printfn $"{path} is not a valid file or directory."
    0
' For Directory.GetFiles and Directory.GetDirectories
' For File.Exists, Directory.Exists 

Imports System.IO
Imports System.Collections

Public Class RecursiveFileProcessor

    Public Overloads Shared Sub Main(ByVal args() As String)
        Dim path As String
        For Each path In args
            If File.Exists(path) Then
                ' This path is a file.
                ProcessFile(path)
            Else
                If Directory.Exists(path) Then
                    ' This path is a directory.
                    ProcessDirectory(path)
                Else
                    Console.WriteLine("{0} is not a valid file or directory.", path)
                End If
            End If
        Next path
    End Sub


    ' Process all files in the directory passed in, recurse on any directories 
    ' that are found, and process the files they contain.
    Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
        Dim fileEntries As String() = Directory.GetFiles(targetDirectory)
        ' Process the list of files found in the directory.
        Dim fileName As String
        For Each fileName In fileEntries
            ProcessFile(fileName)

        Next fileName
        Dim subdirectoryEntries As String() = Directory.GetDirectories(targetDirectory)
        ' Recurse into subdirectories of this directory.
        Dim subdirectory As String
        For Each subdirectory In subdirectoryEntries
            ProcessDirectory(subdirectory)
        Next subdirectory

    End Sub

    ' Insert logic for processing found files here.
    Public Shared Sub ProcessFile(ByVal path As String)
        Console.WriteLine("Processed file '{0}'.", path)
    End Sub
End Class

Açıklamalar

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateFiles, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu listelemeye başlayabilirsiniz; kullandığınızdaGetFiles, diziye erişebilmek için önce ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

Döndürülen dosya adları, sağlanan path parametreye eklenir.

Bu yöntem, arama deseni olarak belirtilen yıldız işareti (*) ile aynıdır GetFiles(String, String) .

path parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .

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.

parametresinin path büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.

Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.

Ayrıca bkz.

Şunlara uygulanır

GetFiles(String, String)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen dizinde belirtilen arama deseni ile eşleşen dosyaların adlarını (yolları dahil) döndürür.

public:
 static cli::array <System::String ^> ^ GetFiles(System::String ^ path, System::String ^ searchPattern);
public static string[] GetFiles (string path, string searchPattern);
static member GetFiles : string * string -> string[]
Public Shared Function GetFiles (path As String, searchPattern As String) As String()

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

searchPattern
String

içindeki dosyaların pathadlarına uygun 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.

Döndürülenler

String[]

Belirtilen dizindeki dosyalar için belirtilen arama deseni ile eşleşen tam adlar dizisi (yollar dahil) veya hiçbir dosya bulunamazsa boş bir dizi.

Özel durumlar

path bir dosya adıdır.

-veya-

Bir ağ hatası oluştu.

Çağıranın gerekli izni yok.

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. kullanarak GetInvalidPathChars()geçersiz karakterleri sorgulayabilirsiniz.

-veya-

searchPattern geçerli bir desen içermiyor.

path veya searchPattern şeklindedir null.

Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.

Belirtilen yol bulunamadı veya geçersiz (örneğin, eşlenmemiş bir sürücüde).

Örnekler

Aşağıdaki örnek, belirtilen harfle başlayan dosya sayısını sayar.

using namespace System;
using namespace System::IO;
int main()
{
   try
   {
      
      // Only get files that begin with the letter "c".
      array<String^>^dirs = Directory::GetFiles( "c:\\", "c*" );
      Console::WriteLine( "The number of files starting with c is {0}.", dirs->Length );
      Collections::IEnumerator^ myEnum = dirs->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         Console::WriteLine( myEnum->Current );
      }
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The process failed: {0}", e );
   }

}
using System;
using System.IO;

class Test
{
    public static void Main()
    {
        try
        {
            // Only get files that begin with the letter "c".
            string[] dirs = Directory.GetFiles(@"c:\", "c*");
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length);
            foreach (string dir in dirs)
            {
                Console.WriteLine(dir);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
open System.IO

try
    // Only get files that begin with the letter "c".
    let dirs = Directory.GetFiles(@"c:\", "c*")
    printfn $"The number of files starting with c is {dirs.Length}."
    for dir in dirs do
        printfn $"{dir}"
with e ->
    printfn $"The process failed: {e}"
Imports System.IO

Public Class Test
    Public Shared Sub Main()
        Try
            ' Only get files that begin with the letter "c".
            Dim dirs As String() = Directory.GetFiles("c:\", "c*")
            Console.WriteLine("The number of files starting with c is {0}.", dirs.Length)
            Dim dir As String
            For Each dir In dirs
                Console.WriteLine(dir)
            Next
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

Açıklamalar

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

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 tam olarak bir karakter.

Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm adları path arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.

searchPattern iki noktayla ("..") sona eremez veya iki nokta ("..") ve ardından DirectorySeparatorChar veya AltDirectorySeparatorCharile bitemez veya geçersiz karakter içeremez. yöntemini kullanarak GetInvalidPathChars geçersiz karakterleri sorgulayabilirsiniz.

Not

Yalnızca .NET Framework: içinde searchPattern yıldız joker karakterini kullandığınızda ve "*.txt" gibi üç karakterli bir dosya uzantısı belirttiğinizde, bu yöntem ayrıca belirtilen uzantıyla başlayan uzantılara sahip dosyaları da döndürür. Örneğin, "*.xls" arama deseni hem "book.xls" hem de "book.xlsx" döndürür. Bu davranış yalnızca arama deseninde yıldız işareti kullanıldığında ve sağlanan dosya uzantısı tam olarak üç karakter olduğunda oluşur. Arama deseninin herhangi bir yerinde soru işareti joker karakterini kullanırsanız, bu yöntem yalnızca belirtilen dosya uzantısıyla tam olarak eşleşen dosyaları döndürür. Aşağıdaki tabloda bu anomali .NET Framework'te açıklanmaktadır.

Dizindeki dosyalar Arama düzeni .NET 5+ döndürür .NET Framework döndürür
file.ai, file.aif *.Aı file.ai file.ai
book.xls, book.xlsx *.xls book.xls book.xls, book.xlsx
ello.txt, hello.txt, hello.txtt ?ello.txt hello.txt hello.txt

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 "LONGFI~1.TXT" olduğundan"*1*.txt" arama deseni kullanıldığında "longfilename.txt" döndürülüyor.

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateFiles, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu listelemeye başlayabilirsiniz; kullandığınızdaGetFiles, diziye erişebilmek için önce ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

path parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .

parametresinin path büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.

Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.

Ayrıca bkz.

Şunlara uygulanır

GetFiles(String, String, EnumerationOptions)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Belirtilen dizindeki belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen dosyaların adlarını (yolları dahil) döndürür.

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

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

searchPattern
String

içindeki dosyaların pathadlarına uygun arama dizesi. Bu parametre geçerli değişmez değer ve joker karakterlerin 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

String[]

Belirtilen dizindeki dosyalar için belirtilen arama deseni ve numaralandırma seçenekleriyle eşleşen tam adlar (yollar dahil) dizisi veya hiçbir dosya bulunamazsa boş bir dizi.

Özel durumlar

path bir dosya adıdır.

-veya-

Bir ağ hatası oluştu.

Çağıranın gerekli izni yok.

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. kullanarak GetInvalidPathChars()geçersiz karakterleri sorgulayabilirsiniz.

-veya-

searchPattern geçerli bir desen içermiyor.

path veya searchPattern şeklindedir null.

Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.

Belirtilen yol bulunamadı veya geçersiz (örneğin, eşlenmemiş bir sürücüde).

Açıklamalar

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

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 tam olarak bir karakter.

Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm adları path arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.

searchPattern iki noktayla ("..") sona eremez veya iki nokta ("..") ve ardından DirectorySeparatorChar veya AltDirectorySeparatorCharile bitemez veya geçersiz karakter içeremez. yöntemini kullanarak GetInvalidPathChars geçersiz karakterleri sorgulayabilirsiniz.

Not

Yalnızca .NET Framework: içinde searchPattern yıldız joker karakterini kullandığınızda ve "*.txt" gibi üç karakterli bir dosya uzantısı belirttiğinizde, bu yöntem ayrıca belirtilen uzantıyla başlayan uzantılara sahip dosyaları da döndürür. Örneğin, "*.xls" arama deseni hem "book.xls" hem de "book.xlsx" döndürür. Bu davranış yalnızca arama deseninde yıldız işareti kullanıldığında ve sağlanan dosya uzantısı tam olarak üç karakter olduğunda oluşur. Arama deseninin herhangi bir yerinde soru işareti joker karakterini kullanırsanız, bu yöntem yalnızca belirtilen dosya uzantısıyla tam olarak eşleşen dosyaları döndürür. Aşağıdaki tabloda bu anomali .NET Framework'te açıklanmaktadır.

Dizindeki dosyalar Arama düzeni .NET 5+ döndürür .NET Framework döndürür
file.ai, file.aif *.Aı file.ai file.ai
book.xls, book.xlsx *.xls book.xls book.xls, book.xlsx
ello.txt, hello.txt, hello.txtt ?ello.txt hello.txt hello.txt

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 "LONGFI~1.TXT" olduğundan"*1*.txt" arama deseni kullanıldığında "longfilename.txt" döndürülüyor.

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateFiles, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu listelemeye başlayabilirsiniz; kullandığınızdaGetFiles, diziye erişebilmek için önce ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

path parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .

parametresinin path büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.

Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.

Şunlara uygulanır

GetFiles(String, String, SearchOption)

Kaynak:
Directory.cs
Kaynak:
Directory.cs
Kaynak:
Directory.cs

Alt dizinlerde arama yapılıp yapılmayacağını belirlemek için bir değer kullanarak, belirtilen dizindeki belirtilen arama deseni ile eşleşen dosyaların adlarını (yolları dahil) döndürür.

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

Parametreler

path
String

Aranacak dizinin göreli veya mutlak yolu. Bu dize, büyük küçük harf duyarlı değildir.

searchPattern
String

içindeki dosyaların pathadlarına uygun 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 tüm alt dizinleri mi yoksa yalnızca geçerli dizini mi içermesi gerektiğini belirten numaralandırma değerlerinden biri.

Döndürülenler

String[]

Belirtilen dizindeki dosyalar için belirtilen arama deseni ve seçeneğiyle eşleşen tam adlar (yollar dahil) dizisi veya hiçbir dosya bulunamazsa boş bir dizi.

Özel durumlar

2.1'den eski .NET Framework ve .NET Core sürümleri: path sıfır uzunlukta bir dizedir, yalnızca boşluk içerir veya bir veya daha fazla geçersiz karakter içerir. yöntemiyle GetInvalidPathChars() geçersiz karakterleri sorgulayabilirsiniz.

-veya-

searchPattern geçerli bir desen içermiyor.

path veya searchpattern şeklindedir null.

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

Çağıranın gerekli izni yok.

Belirtilen yol bulunamadı veya geçersiz (örneğin, eşlenmemiş bir sürücüde).

Belirtilen yol, dosya adı veya her ikisi birden sistem tarafından tanımlanan en fazla uzunluğu aşıyor.

path bir dosya adıdır.

-veya-

Bir ağ hatası oluştu.

Açıklamalar

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

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 tam olarak bir karakter.

Joker karakter dışındaki karakterler değişmez karakterlerdir. Örneğin, searchPattern "*t" dizesi "t" harfiyle biten tüm adları path arar. searchPattern"s*" dizesi, "s" harfiyle başlayan tüm adları path arar.

searchPattern iki noktayla ("..") sona eremez veya iki nokta ("..") ve ardından DirectorySeparatorChar veya AltDirectorySeparatorCharile bitemez veya geçersiz karakter içeremez. yöntemini kullanarak GetInvalidPathChars geçersiz karakterleri sorgulayabilirsiniz.

Not

Yalnızca .NET Framework: içinde searchPattern yıldız joker karakterini kullandığınızda ve "*.txt" gibi üç karakterli bir dosya uzantısı belirttiğinizde, bu yöntem ayrıca belirtilen uzantıyla başlayan uzantılara sahip dosyaları da döndürür. Örneğin, "*.xls" arama deseni hem "book.xls" hem de "book.xlsx" döndürür. Bu davranış yalnızca arama deseninde yıldız işareti kullanıldığında ve sağlanan dosya uzantısı tam olarak üç karakter olduğunda oluşur. Arama deseninin herhangi bir yerinde soru işareti joker karakterini kullanırsanız, bu yöntem yalnızca belirtilen dosya uzantısıyla tam olarak eşleşen dosyaları döndürür. Aşağıdaki tabloda bu anomali .NET Framework'te açıklanmaktadır.

Dizindeki dosyalar Arama düzeni .NET 5+ döndürür .NET Framework döndürür
file.ai, file.aif *.Aı file.ai file.ai
book.xls, book.xlsx *.xls book.xls book.xls, book.xlsx
ello.txt, hello.txt, hello.txtt ?ello.txt hello.txt hello.txt

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 "LONGFI~1.TXT" olduğundan"*1*.txt" arama deseni kullanıldığında "longfilename.txt" döndürülüyor.

EnumerateFiles ve GetFiles yöntemleri aşağıdaki gibi farklılık gösterir: kullandığınızdaEnumerateFiles, koleksiyonun tamamı döndürülmeden önce ad koleksiyonunu listelemeye başlayabilirsiniz; kullandığınızdaGetFiles, diziye erişebilmek için önce ad dizisinin tamamının döndürülmesini beklemeniz gerekir. Bu nedenle, birçok dosya ve dizinle EnumerateFiles çalışırken daha verimli olabilir.

Dosya adları tam yolu içerir.

path parametresi göreli veya mutlak yol bilgilerini belirtebilir. Göreli yol bilgisi, geçerli çalışma dizinine göre yorumlanır. Geçerli çalışma dizinini edinmek için bkz GetCurrentDirectory. .

parametresinin path büyük/küçük harf duyarlılığı, kodun üzerinde çalıştığı dosya sistemine karşılık gelir. Örneğin, NTFS'de (varsayılan Windows dosya sistemi) büyük/küçük harfe duyarlı değildir ve Linux dosya sistemlerinde büyük/küçük harfe duyarlıdır.

Yaygın G/Ç görevlerinin listesi için bkz. Ortak G/Ç Görevleri.

Ayrıca bkz.

Şunlara uygulanır