Directory.GetFileSystemEntries Metoda

Definicja

Zwraca nazwy wszystkich plików i podkatalogów spełniających określone kryteria.Returns the names of all files and subdirectories that meet specified criteria.

Przeciążenia

GetFileSystemEntries(String)

Zwraca nazwy wszystkich plików i podkatalogów w określonej ścieżce.Returns the names of all files and subdirectories in a specified path.

GetFileSystemEntries(String, String)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an array of file names and directory names that match a search pattern in a specified path.

GetFileSystemEntries(String, String, EnumerationOptions)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce.Returns an array of file names and directory names that match a search pattern and enumeration options in a specified path.

GetFileSystemEntries(String, String, SearchOption)

Zwraca tablicę wszystkich nazw plików i katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an array of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

GetFileSystemEntries(String)

Zwraca nazwy wszystkich plików i podkatalogów w określonej ścieżce.Returns the names of all files and subdirectories in a specified path.

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

Parametry

path
String

Ścieżka względna lub bezwzględna do katalogu do przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

Zwraca

String[]

Tablica nazw plików i podkatalogów w określonym katalogu lub pusta tablica, jeśli nie znaleziono plików lub podkatalogów.An array of the names of files and subdirectories in the specified directory, or an empty array if no files or subdirectories are found.

Wyjątki

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą GetInvalidPathChars()można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters with GetInvalidPathChars().

Parametr path ma wartość null.path is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

path jest nazwą pliku.path is a file name.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

Przykłady

W poniższym przykładzie zastosowano metodę GetFileSystemEntries, aby wypełnić tablicę ciągów nazwami wszystkich plików i podkatalogów w lokalizacji określonej przez użytkownika i wydrukować każdy ciąg w tablicy do konsoli programu.The following example uses the GetFileSystemEntries method to fill an array of strings with the names of all files and subdirectories in a user-specified location and prints each string in the array to the console. Przykład jest skonfigurowany do przechwytywania wszystkich błędów wspólnych dla tej metody.The example is configured to catch all errors common to this method.

using namespace System;
class Class1
{
public:
   void PrintFileSystemEntries( String^ path )
   {
      try
      {
         
         // Obtain the file system entries in the directory path.
         array<String^>^directoryEntries = System::IO::Directory::GetFileSystemEntries( path );
         for ( int i = 0; i < directoryEntries->Length; i++ )
         {
            System::Console::WriteLine( directoryEntries[ i ] );

         }
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::DirectoryNotFoundException^ ) 
      {
         System::Console::WriteLine(  "The path encapsulated in the \HelloServer'                  Directory object does not exist." );
      }

   }

   void PrintFileSystemEntries( String^ path, String^ pattern )
   {
      try
      {
         
         // Obtain the file system entries in the directory
         // path that match the pattern.
         array<String^>^directoryEntries = System::IO::Directory::GetFileSystemEntries( path, pattern );
         for ( int i = 0; i < directoryEntries->Length; i++ )
         {
            System::Console::WriteLine( directoryEntries[ i ] );

         }
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::DirectoryNotFoundException^ ) 
      {
         System::Console::WriteLine(  "The path encapsulated in the \HelloServer'                  Directory object does not exist." );
      }

   }


   // Print out all logical drives on the system.
   void GetLogicalDrives()
   {
      try
      {
         array<String^>^drives = System::IO::Directory::GetLogicalDrives();
         for ( int i = 0; i < drives->Length; i++ )
         {
            System::Console::WriteLine( drives[ i ] );

         }
      }
      catch ( System::IO::IOException^ ) 
      {
         System::Console::WriteLine(  "An I/O error occurs." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }

   }

   void GetParent( String^ path )
   {
      try
      {
         System::IO::DirectoryInfo^ directoryInfo = System::IO::Directory::GetParent( path );
         System::Console::WriteLine( directoryInfo->FullName );
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, or \HelloServer'                  contains invalid characters." );
      }

   }

   void Move( String^ sourcePath, String^ destinationPath )
   {
      try
      {
         System::IO::Directory::Move( sourcePath, destinationPath );
         System::Console::WriteLine(  "The directory move is complete." );
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::IOException^ ) 
      {
         System::Console::WriteLine(  "An attempt was made to move a \HelloServer'                  directory to a different \HelloServer'                  volume, or destDirName \HelloServer'                  already exists." );
      }

   }

};

int main()
{
   Class1 * snippets = new Class1;
   String^ path = System::IO::Directory::GetCurrentDirectory();
   String^ filter =  "*.exe";
   snippets->PrintFileSystemEntries( path );
   snippets->PrintFileSystemEntries( path, filter );
   snippets->GetLogicalDrives();
   snippets->GetParent( path );
   snippets->Move(  "C:\\proof",  "C:\\Temp" );
   return 0;
}

using System;

namespace GetFileSystemEntries
{
    class Class1 
    {
        static void Main(string[] args) 
        {
            Class1 snippets = new Class1();

            string path = System.IO.Directory.GetCurrentDirectory();
            string filter = "*.exe";

            snippets.PrintFileSystemEntries(path);
            snippets.PrintFileSystemEntries(path, filter);		
            snippets.GetLogicalDrives();
            snippets.GetParent(path);
            snippets.Move("C:\\proof", "C:\\Temp");
        }

        void PrintFileSystemEntries(string path) 
        {
            
            try 
            {
                // Obtain the file system entries in the directory path.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }
        void PrintFileSystemEntries(string path, string pattern) 
        {
            try 
            {
                // Obtain the file system entries in the directory
                // path that match the pattern.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path, pattern); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }

        // Print out all logical drives on the system.
        void GetLogicalDrives() 
        {
            try 
            {
                string[] drives = System.IO.Directory.GetLogicalDrives();

                foreach (string str in drives) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An I/O error occurs.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
        }
        void GetParent(string path) 
        {
            try 
            {
                System.IO.DirectoryInfo directoryInfo =
                    System.IO.Directory.GetParent(path);

                System.Console.WriteLine(directoryInfo.FullName);
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, or " +
                    "contains invalid characters.");
            }
        }
        void Move(string sourcePath, string destinationPath) 
        {
            try 
            {
                System.IO.Directory.Move(sourcePath, destinationPath);
                System.Console.WriteLine("The directory move is complete.");
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");	
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An attempt was made to move a " +
                    "directory to a different " +
                    "volume, or destDirName " +
                    "already exists."); 
            }
        }
    }
}
Option Explicit On 
Option Strict On

Namespace GetFileSystemEntries
    Class Class1
        Overloads Shared Sub Main(ByVal args() As String)
            Dim snippets As New Class1()
            Dim path As String = System.IO.Directory.GetCurrentDirectory()
            Dim filter As String = "*.exe"
            snippets.PrintFileSystemEntries(path)
            snippets.PrintFileSystemEntries(path, filter)
            snippets.GetLogicalDrives()
            snippets.GetParent(path)
            snippets.Move("C:\proof", "C:\Temp")
        End Sub

        Sub PrintFileSystemEntries(ByVal path As String)
            Try
                ' Obtain the file system entries in the directory path.
                Dim directoryEntries As String()
                directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub
        Sub PrintFileSystemEntries(ByVal path As String, _
                                   ByVal pattern As String)
            Try
                ' Obtain the file system entries in the directory
                ' path that match the pattern.
                Dim directoryEntries As String()
                directoryEntries = _
                   System.IO.Directory.GetFileSystemEntries(path, pattern)

                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub

        ' Print out all logical drives on the system.
        Sub GetLogicalDrives()
            Try
                Dim drives As String()
                drives = System.IO.Directory.GetLogicalDrives()

                Dim str As String
                For Each str In drives
                    System.Console.WriteLine(str)
                Next str
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An I/O error occurs.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            End Try
        End Sub
        Sub GetParent(ByVal path As String)
            Try
                Dim directoryInfo As System.IO.DirectoryInfo
                directoryInfo = System.IO.Directory.GetParent(path)
                System.Console.WriteLine(directoryInfo.FullName)
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                     "contains only white spaces, or " + _
                                     "contains invalid characters.")
            End Try
        End Sub
        Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
            Try
                System.IO.Directory.Move(sourcePath, destinationPath)
                System.Console.WriteLine("The directory move is complete.")
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An attempt was made to move a " + _
                                        "directory to a different " + _
                                        "volume, or destDirName " + _
                                        "already exists.")
            End Try
        End Sub
    End Class
End Namespace

Uwagi

Kolejność zwróconych nazw plików i katalogów nie jest gwarantowana; Użyj metody Sort, jeśli wymagana jest określona kolejność sortowania.The order of the returned file and directory names is not guaranteed; use the Sort method if a specific sort order is required.

Metody EnumerateFileSystemEntries i GetFileSystemEntries różnią się w następujący sposób: w przypadku korzystania z EnumerateFileSystemEntriesmożna rozpocząć wyliczanie kolekcji wpisów przed zwróceniem całej kolekcji; gdy używasz GetFileSystemEntries, musisz poczekać, aż cała tablica wpisów zostanie zwrócona, zanim będzie można uzyskać dostęp do tablicy.The EnumerateFileSystemEntries and GetFileSystemEntries methods differ as follows: When you use EnumerateFileSystemEntries, you can start enumerating the collection of entries before the whole collection is returned; when you use GetFileSystemEntries, you must wait for the whole array of entries to be returned before you can access the array. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateFiles może być bardziej wydajny.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Ta metoda jest taka sama jak GetFileSystemEntries z gwiazdką (*) określoną jako wzorzec wyszukiwania.This method is identical to GetFileSystemEntries with the asterisk (*) specified as the search pattern.

Parametr path może określać informacje o ścieżce względnej lub bezwzględnej.The path parameter is permitted to specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

W parametrze path nie jest rozróżniana wielkość liter.The path parameter is not case-sensitive.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Zabezpieczenia

FileIOPermission
w celu uzyskania dostępu do informacji o ścieżce dla bieżącego katalogu.for access to path information for the current directory. Skojarzone Wyliczenie: PathDiscoveryAssociated enumeration: PathDiscovery

Zobacz też

GetFileSystemEntries(String, String)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce.Returns an array of file names and directory names that match a search pattern in a specified path.

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

Parametry

path
String

Ścieżka względna lub bezwzględna do katalogu do przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

searchPattern
String

Ciąg wyszukiwania do dopasowania do nazw plików i katalogów w path.The search string to match against the names of file and directories in path. Ten parametr może zawierać kombinację prawidłowej ścieżki literału i symboli wieloznacznych (* i?), ale nie obsługuje wyrażeń regularnych.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

Zwraca

String[]

Tablica nazw plików i nazw katalogów, które pasują do określonych kryteriów wyszukiwania lub pustej tablicy, jeśli nie znaleziono plików lub katalogów.An array of file names and directory names that match the specified search criteria, or an empty array if no files or directories are found.

Wyjątki

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters with the GetInvalidPathChars() method.

lub-or- searchPattern nie zawiera prawidłowego wzorca.searchPattern does not contain a valid pattern.

Parametr path lub searchPattern ma wartość null.path or searchPattern is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

path jest nazwą pliku.path is a file name.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

Przykłady

W poniższym przykładzie zastosowano metodę GetFileSystemEntries, aby wypełnić tablicę ciągów nazwami wszystkich plików zgodnych z filtrem określonym przez użytkownika w określonej lokalizacji i wydrukować każdy ciąg w tablicy do konsoli programu.The following example uses the GetFileSystemEntries method to fill an array of strings with the names of all files matching a user-specified filter in a specific location and prints each string in the array to the console. Przykład jest skonfigurowany do przechwytywania wszystkich błędów wspólnych dla tej metody.The example is configured to catch all errors common to this method.

using namespace System;
class Class1
{
public:
   void PrintFileSystemEntries( String^ path )
   {
      try
      {
         
         // Obtain the file system entries in the directory path.
         array<String^>^directoryEntries = System::IO::Directory::GetFileSystemEntries( path );
         for ( int i = 0; i < directoryEntries->Length; i++ )
         {
            System::Console::WriteLine( directoryEntries[ i ] );

         }
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::DirectoryNotFoundException^ ) 
      {
         System::Console::WriteLine(  "The path encapsulated in the \HelloServer'                  Directory object does not exist." );
      }

   }

   void PrintFileSystemEntries( String^ path, String^ pattern )
   {
      try
      {
         
         // Obtain the file system entries in the directory
         // path that match the pattern.
         array<String^>^directoryEntries = System::IO::Directory::GetFileSystemEntries( path, pattern );
         for ( int i = 0; i < directoryEntries->Length; i++ )
         {
            System::Console::WriteLine( directoryEntries[ i ] );

         }
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::DirectoryNotFoundException^ ) 
      {
         System::Console::WriteLine(  "The path encapsulated in the \HelloServer'                  Directory object does not exist." );
      }

   }


   // Print out all logical drives on the system.
   void GetLogicalDrives()
   {
      try
      {
         array<String^>^drives = System::IO::Directory::GetLogicalDrives();
         for ( int i = 0; i < drives->Length; i++ )
         {
            System::Console::WriteLine( drives[ i ] );

         }
      }
      catch ( System::IO::IOException^ ) 
      {
         System::Console::WriteLine(  "An I/O error occurs." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }

   }

   void GetParent( String^ path )
   {
      try
      {
         System::IO::DirectoryInfo^ directoryInfo = System::IO::Directory::GetParent( path );
         System::Console::WriteLine( directoryInfo->FullName );
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, or \HelloServer'                  contains invalid characters." );
      }

   }

   void Move( String^ sourcePath, String^ destinationPath )
   {
      try
      {
         System::IO::Directory::Move( sourcePath, destinationPath );
         System::Console::WriteLine(  "The directory move is complete." );
      }
      catch ( ArgumentNullException^ ) 
      {
         System::Console::WriteLine(  "Path is a null reference." );
      }
      catch ( System::Security::SecurityException^ ) 
      {
         System::Console::WriteLine(  "The caller does not have the \HelloServer'                  required permission." );
      }
      catch ( ArgumentException^ ) 
      {
         System::Console::WriteLine(  "Path is an empty String, \HelloServer'                  contains only white spaces, \HelloServer'                  or contains invalid characters." );
      }
      catch ( System::IO::IOException^ ) 
      {
         System::Console::WriteLine(  "An attempt was made to move a \HelloServer'                  directory to a different \HelloServer'                  volume, or destDirName \HelloServer'                  already exists." );
      }

   }

};

int main()
{
   Class1 * snippets = new Class1;
   String^ path = System::IO::Directory::GetCurrentDirectory();
   String^ filter =  "*.exe";
   snippets->PrintFileSystemEntries( path );
   snippets->PrintFileSystemEntries( path, filter );
   snippets->GetLogicalDrives();
   snippets->GetParent( path );
   snippets->Move(  "C:\\proof",  "C:\\Temp" );
   return 0;
}

using System;

namespace GetFileSystemEntries
{
    class Class1 
    {
        static void Main(string[] args) 
        {
            Class1 snippets = new Class1();

            string path = System.IO.Directory.GetCurrentDirectory();
            string filter = "*.exe";

            snippets.PrintFileSystemEntries(path);
            snippets.PrintFileSystemEntries(path, filter);		
            snippets.GetLogicalDrives();
            snippets.GetParent(path);
            snippets.Move("C:\\proof", "C:\\Temp");
        }

        void PrintFileSystemEntries(string path) 
        {
            
            try 
            {
                // Obtain the file system entries in the directory path.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }
        void PrintFileSystemEntries(string path, string pattern) 
        {
            try 
            {
                // Obtain the file system entries in the directory
                // path that match the pattern.
                string[] directoryEntries =
                    System.IO.Directory.GetFileSystemEntries(path, pattern); 

                foreach (string str in directoryEntries) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");
            }
            catch (System.IO.DirectoryNotFoundException) 
            {
                System.Console.WriteLine("The path encapsulated in the " + 
                    "Directory object does not exist.");
            }
        }

        // Print out all logical drives on the system.
        void GetLogicalDrives() 
        {
            try 
            {
                string[] drives = System.IO.Directory.GetLogicalDrives();

                foreach (string str in drives) 
                {
                    System.Console.WriteLine(str);
                }
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An I/O error occurs.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
        }
        void GetParent(string path) 
        {
            try 
            {
                System.IO.DirectoryInfo directoryInfo =
                    System.IO.Directory.GetParent(path);

                System.Console.WriteLine(directoryInfo.FullName);
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, or " +
                    "contains invalid characters.");
            }
        }
        void Move(string sourcePath, string destinationPath) 
        {
            try 
            {
                System.IO.Directory.Move(sourcePath, destinationPath);
                System.Console.WriteLine("The directory move is complete.");
            }
            catch (ArgumentNullException) 
            {
                System.Console.WriteLine("Path is a null reference.");
            }
            catch (System.Security.SecurityException) 
            {
                System.Console.WriteLine("The caller does not have the " +
                    "required permission.");
            }
            catch (ArgumentException) 
            {
                System.Console.WriteLine("Path is an empty string, " +
                    "contains only white spaces, " + 
                    "or contains invalid characters.");	
            }
            catch (System.IO.IOException) 
            {
                System.Console.WriteLine("An attempt was made to move a " +
                    "directory to a different " +
                    "volume, or destDirName " +
                    "already exists."); 
            }
        }
    }
}
Option Explicit On 
Option Strict On

Namespace GetFileSystemEntries
    Class Class1
        Overloads Shared Sub Main(ByVal args() As String)
            Dim snippets As New Class1()
            Dim path As String = System.IO.Directory.GetCurrentDirectory()
            Dim filter As String = "*.exe"
            snippets.PrintFileSystemEntries(path)
            snippets.PrintFileSystemEntries(path, filter)
            snippets.GetLogicalDrives()
            snippets.GetParent(path)
            snippets.Move("C:\proof", "C:\Temp")
        End Sub

        Sub PrintFileSystemEntries(ByVal path As String)
            Try
                ' Obtain the file system entries in the directory path.
                Dim directoryEntries As String()
                directoryEntries = System.IO.Directory.GetFileSystemEntries(path)
                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub
        Sub PrintFileSystemEntries(ByVal path As String, _
                                   ByVal pattern As String)
            Try
                ' Obtain the file system entries in the directory
                ' path that match the pattern.
                Dim directoryEntries As String()
                directoryEntries = _
                   System.IO.Directory.GetFileSystemEntries(path, pattern)

                Dim str As String
                For Each str In directoryEntries
                    System.Console.WriteLine(str)
                Next str
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                        "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.DirectoryNotFoundException
                System.Console.WriteLine("The path encapsulated in the " + _
                                        "Directory object does not exist.")
            End Try
        End Sub

        ' Print out all logical drives on the system.
        Sub GetLogicalDrives()
            Try
                Dim drives As String()
                drives = System.IO.Directory.GetLogicalDrives()

                Dim str As String
                For Each str In drives
                    System.Console.WriteLine(str)
                Next str
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An I/O error occurs.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            End Try
        End Sub
        Sub GetParent(ByVal path As String)
            Try
                Dim directoryInfo As System.IO.DirectoryInfo
                directoryInfo = System.IO.Directory.GetParent(path)
                System.Console.WriteLine(directoryInfo.FullName)
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                     "contains only white spaces, or " + _
                                     "contains invalid characters.")
            End Try
        End Sub
        Sub Move(ByVal sourcePath As String, ByVal destinationPath As String)
            Try
                System.IO.Directory.Move(sourcePath, destinationPath)
                System.Console.WriteLine("The directory move is complete.")
            Catch exp As ArgumentNullException
                System.Console.WriteLine("Path is a null reference.")
            Catch exp As System.Security.SecurityException
                System.Console.WriteLine("The caller does not have the " + _
                                           "required permission.")
            Catch exp As ArgumentException
                System.Console.WriteLine("Path is an empty string, " + _
                                        "contains only white spaces, " + _
                                        "or contains invalid characters.")
            Catch exp As System.IO.IOException
                System.Console.WriteLine("An attempt was made to move a " + _
                                        "directory to a different " + _
                                        "volume, or destDirName " + _
                                        "already exists.")
            End Try
        End Sub
    End Class
End Namespace

Uwagi

Kolejność zwróconych nazw plików i katalogów nie jest gwarantowana; Użyj metody Sort, jeśli wymagana jest określona kolejność sortowania.The order of the returned file and directory names is not guaranteed; use the Sort method if a specific sort order is required.

searchPattern może być kombinacją znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Następujące specyfikatory wieloznaczne są dozwolone w searchPattern.The following wildcard specifiers are permitted in searchPattern.

Symbol wieloznacznyWildcard specifier DopasowaniaMatches
* (gwiazdka)* (asterisk) Zero lub więcej znaków w tej pozycji.Zero or more characters in that position.
?? (znak zapytania)(question mark) Zero lub jeden znak w tym położeniu.Zero or one character in that position.

Znaki inne niż symbol wieloznaczny są znakami literału.Characters other than the wildcard are literal characters. Na przykład ciąg searchPattern "*t" wyszukuje wszystkie nazwy w path kończące się literą "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Ciąg searchPattern "s*" wyszukuje wszystkie nazwy w path rozpoczynające się od litery "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Za pomocą metody GetInvalidPathChars można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars method.

Uwaga

Gdy używasz symbolu wieloznacznego gwiazdki w searchPattern takiej jak "*. txt", liczba znaków w określonym rozszerzeniu wpłynie na wyszukiwanie w następujący sposób:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Jeśli określone rozszerzenie ma dokładnie trzy znaki, metoda zwraca pliki z rozszerzeniami, które zaczynają się od określonego rozszerzenia.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Na przykład "*. xls" zwraca zarówno "Book. xls", jak i "Book. xlsx".For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • We wszystkich innych przypadkach Metoda zwraca pliki, które dokładnie pasują do określonego rozszerzenia.In all other cases, the method returns files that exactly match the specified extension. Na przykład "*. AI" zwraca wartość "file.ai", ale nie "File. AIF".For example, "*.ai" returns "file.ai" but not "file.aif".

Gdy używasz znaku wieloznacznego znaku zapytania, Metoda ta zwraca tylko pliki zgodne z określonym rozszerzeniem pliku.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Na przykład, podaną dwa pliki, "plik1. txt" i "plik1. txtother", w katalogu, wzorzec wyszukiwania "plik". txt "zwraca tylko pierwszy plik, natomiast wzorzec wyszukiwania" File*. txt "zwraca oba pliki.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

Parametr path może określać informacje o ścieżce względnej lub bezwzględnej.The path parameter is permitted to specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

W parametrze path nie jest rozróżniana wielkość liter.The path parameter is not case-sensitive.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

Zabezpieczenia

FileIOPermission
w celu uzyskania dostępu do informacji o ścieżce dla bieżącego katalogu.for access to path information for the current directory. Skojarzone Wyliczenie: PathDiscoveryAssociated enumeration: PathDiscovery

Zobacz też

GetFileSystemEntries(String, String, EnumerationOptions)

Zwraca tablicę nazw plików i nazw katalogów, które pasują do wzorca wyszukiwania i opcji wyliczenia w określonej ścieżce.Returns an array of file names and directory names that match a search pattern and enumeration options in a specified path.

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

Parametry

path
String

Ścieżka względna lub bezwzględna do katalogu do przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

searchPattern
String

Ciąg wyszukiwania do dopasowania do nazw podkatalogów w path.The search string to match against the names of subdirectories in path. Ten parametr może zawierać kombinację prawidłowych znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.This parameter can contain a combination of valid literal and wildcard characters, but it doesn't support regular expressions.

enumerationOptions
EnumerationOptions

Obiekt opisujący konfigurację wyszukiwania i wyliczania do użycia.An object that describes the search and enumeration configuration to use.

Zwraca

String[]

Tablica nazw plików i nazw katalogów, które pasują do określonego wzorca wyszukiwania i opcji wyliczenia, lub pustej tablicy, jeśli nie znaleziono plików lub katalogów.An array of file names and directory names that match the specified search pattern and enumeration options, or an empty array if no files or directories are found.

Wyjątki

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera jeden lub więcej nieprawidłowych znaków.path is a zero-length string, contains only white space, or contains one or more invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters with the GetInvalidPathChars() method.

lub-or-

searchPattern nie zawiera prawidłowego wzorca.searchPattern does not contain a valid pattern.

Parametr path lub searchPattern ma wartość null.path or searchPattern is null.

Podana ścieżka, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system.The specified path, file name, or both exceed the system-defined maximum length.

path jest nazwą pliku.path is a file name.

Określona ścieżka jest nieprawidłowa (na przykład znajduje się na dysku niezamapowanym).The specified path is invalid (for example, it is on an unmapped drive).

Uwagi

Kolejność zwróconych nazw plików i katalogów nie jest gwarantowana; Użyj metody Sort, jeśli wymagana jest określona kolejność sortowania.The order of the returned file and directory names is not guaranteed; use the Sort method if a specific sort order is required.

searchPattern może być kombinacją znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Następujące specyfikatory wieloznaczne są dozwolone w searchPattern.The following wildcard specifiers are permitted in searchPattern.

Symbol wieloznacznyWildcard specifier DopasowaniaMatches
* (gwiazdka)* (asterisk) Zero lub więcej znaków w tej pozycji.Zero or more characters in that position.
?? (znak zapytania)(question mark) Zero lub jeden znak w tym położeniu.Zero or one character in that position.

Znaki inne niż symbol wieloznaczny są znakami literału.Characters other than the wildcard are literal characters. Na przykład ciąg searchPattern "*t" wyszukuje wszystkie nazwy w path kończące się literą "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Ciąg searchPattern "s*" wyszukuje wszystkie nazwy w path rozpoczynające się od litery "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Za pomocą metody GetInvalidPathChars można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars method.

Uwaga

Gdy używasz symbolu wieloznacznego gwiazdki w searchPattern takiej jak "*. txt", liczba znaków w określonym rozszerzeniu wpłynie na wyszukiwanie w następujący sposób:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Jeśli określone rozszerzenie ma dokładnie trzy znaki, metoda zwraca pliki z rozszerzeniami, które zaczynają się od określonego rozszerzenia.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Na przykład "*. xls" zwraca zarówno "Book. xls", jak i "Book. xlsx".For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • We wszystkich innych przypadkach Metoda zwraca pliki, które dokładnie pasują do określonego rozszerzenia.In all other cases, the method returns files that exactly match the specified extension. Na przykład "*. AI" zwraca wartość "file.ai", ale nie "File. AIF".For example, "*.ai" returns "file.ai" but not "file.aif".

Gdy używasz znaku wieloznacznego znaku zapytania, Metoda ta zwraca tylko pliki zgodne z określonym rozszerzeniem pliku.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Na przykład, podaną dwa pliki, "plik1. txt" i "plik1. txtother", w katalogu, wzorzec wyszukiwania "plik". txt "zwraca tylko pierwszy plik, natomiast wzorzec wyszukiwania" File*. txt "zwraca oba pliki.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

Parametr path może określać informacje o ścieżce względnej lub bezwzględnej.The path parameter is permitted to specify relative or absolute path information. Informacje o ścieżce względnej są interpretowane jako względne w stosunku do bieżącego katalogu roboczego.Relative path information is interpreted as relative to the current working directory. Aby uzyskać bieżący katalog roboczy, zobacz GetCurrentDirectory.To obtain the current working directory, see GetCurrentDirectory.

W parametrze path nie jest rozróżniana wielkość liter.The path parameter is not case-sensitive.

Aby uzyskać listę typowych zadań we/wy, zobacz typowe zadania we/wy.For a list of common I/O tasks, see Common I/O Tasks.

GetFileSystemEntries(String, String, SearchOption)

Zwraca tablicę wszystkich nazw plików i katalogów, które pasują do wzorca wyszukiwania w określonej ścieżce i opcjonalnie przeszukują podkatalogi.Returns an array of all the file names and directory names that match a search pattern in a specified path, and optionally searches subdirectories.

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

Parametry

path
String

Ścieżka względna lub bezwzględna do katalogu do przeszukania.The relative or absolute path to the directory to search. W tym ciągu nie jest rozróżniana wielkość liter.This string is not case-sensitive.

searchPattern
String

Ciąg wyszukiwania do dopasowania do nazw plików i katalogów w path.The search string to match against the names of files and directories in path. Ten parametr może zawierać kombinację prawidłowej ścieżki literału i symboli wieloznacznych (* i?), ale nie obsługuje wyrażeń regularnych.This parameter can contain a combination of valid literal path and wildcard (* and ?) characters, but it doesn't support regular expressions.

searchOption
SearchOption

Jedna z wartości wyliczenia, która określa, czy operacja wyszukiwania powinna zawierać tylko bieżący katalog, czy też powinna zawierać wszystkie podkatalogi.One of the enumeration values that specifies whether the search operation should include only the current directory or should include all subdirectories. Wartość domyślna to TopDirectoryOnly.The default value is TopDirectoryOnly.

Zwraca

String[]

Tablica plików nazw plików i katalogów, które pasują do określonych kryteriów wyszukiwania lub pustej tablicy, jeśli nie znaleziono plików lub katalogów.An array of file the file names and directory names that match the specified search criteria, or an empty array if no files or directories are found.

Wyjątki

path jest ciągiem o zerowej długości, zawiera tylko znak odstępu lub zawiera nieprawidłowe znaki.path is a zero-length string, contains only white space, or contains invalid characters. Za pomocą metody GetInvalidPathChars() można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars() method.

lub-or- searchPattern nie zawiera prawidłowego wzorca.searchPattern does not contain a valid pattern.

Parametr path ma wartość null.path is null.

lub-or- Parametr searchPattern ma wartość null.searchPattern is null.

searchOption nie jest prawidłową wartością SearchOption.searchOption is not a valid SearchOption value.

path jest nieprawidłowy, na przykład odwołujący się do niemapowanego dysku.path is invalid, such as referring to an unmapped drive.

path jest nazwą pliku.path is a file name.

Określona ścieżka, nazwa pliku lub łącznie przekracza maksymalną długość zdefiniowaną przez system.The specified path, file name, or combined exceed the system-defined maximum length.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Element wywołujący nie ma wymaganego uprawnienia.The caller does not have the required permission.

Uwagi

Kolejność zwróconych nazw plików i katalogów nie jest gwarantowana; Użyj metody Sort, jeśli wymagana jest określona kolejność sortowania.The order of the returned file and directory names is not guaranteed; use the Sort method if a specific sort order is required.

searchPattern może być kombinacją znaków literału i symboli wieloznacznych, ale nie obsługuje wyrażeń regularnych.searchPattern can be a combination of literal and wildcard characters, but it doesn't support regular expressions. Następujące specyfikatory wieloznaczne są dozwolone w searchPattern.The following wildcard specifiers are permitted in searchPattern.

Symbol wieloznacznyWildcard specifier DopasowaniaMatches
* (gwiazdka)* (asterisk) Zero lub więcej znaków w tej pozycji.Zero or more characters in that position.
?? (znak zapytania)(question mark) Zero lub jeden znak w tym położeniu.Zero or one character in that position.

Znaki inne niż symbol wieloznaczny są znakami literału.Characters other than the wildcard are literal characters. Na przykład ciąg searchPattern "*t" wyszukuje wszystkie nazwy w path kończące się literą "t".For example, the searchPattern string "*t" searches for all names in path ending with the letter "t". Ciąg searchPattern "s*" wyszukuje wszystkie nazwy w path rozpoczynające się od litery "s".The searchPattern string "s*" searches for all names in path beginning with the letter "s".

searchPattern nie może kończyć się dwoma kropkami ("..") ani zawierać dwóch kropek (".."), po których następuje DirectorySeparatorChar lub AltDirectorySeparatorChar, ani nie może zawierać żadnych nieprawidłowych znaków.searchPattern cannot end in two periods ("..") or contain two periods ("..") followed by DirectorySeparatorChar or AltDirectorySeparatorChar, nor can it contain any invalid characters. Za pomocą metody GetInvalidPathChars można wykonywać zapytania dotyczące nieprawidłowych znaków.You can query for invalid characters by using the GetInvalidPathChars method.

Uwaga

Gdy używasz symbolu wieloznacznego gwiazdki w searchPattern takiej jak "*. txt", liczba znaków w określonym rozszerzeniu wpłynie na wyszukiwanie w następujący sposób:When you use the asterisk wildcard character in a searchPattern such as "*.txt", the number of characters in the specified extension affects the search as follows:

  • Jeśli określone rozszerzenie ma dokładnie trzy znaki, metoda zwraca pliki z rozszerzeniami, które zaczynają się od określonego rozszerzenia.If the specified extension is exactly three characters long, the method returns files with extensions that begin with the specified extension. Na przykład "*. xls" zwraca zarówno "Book. xls", jak i "Book. xlsx".For example, "*.xls" returns both "book.xls" and "book.xlsx".
  • We wszystkich innych przypadkach Metoda zwraca pliki, które dokładnie pasują do określonego rozszerzenia.In all other cases, the method returns files that exactly match the specified extension. Na przykład "*. AI" zwraca wartość "file.ai", ale nie "File. AIF".For example, "*.ai" returns "file.ai" but not "file.aif".

Gdy używasz znaku wieloznacznego znaku zapytania, Metoda ta zwraca tylko pliki zgodne z określonym rozszerzeniem pliku.When you use the question mark wildcard character, this method returns only files that match the specified file extension. Na przykład, podaną dwa pliki, "plik1. txt" i "plik1. txtother", w katalogu, wzorzec wyszukiwania "plik". txt "zwraca tylko pierwszy plik, natomiast wzorzec wyszukiwania" File*. txt "zwraca oba pliki.For example, given two files, "file1.txt" and "file1.txtother", in a directory, a search pattern of "file?.txt" returns just the first file, whereas a search pattern of "file*.txt" returns both files.

Metody EnumerateFileSystemEntries i GetFileSystemEntries różnią się w następujący sposób: w przypadku korzystania z EnumerateFileSystemEntriesmożna rozpocząć wyliczanie kolekcji wpisów przed zwróceniem całej kolekcji; gdy używasz GetFileSystemEntries, musisz poczekać, aż cała tablica wpisów zostanie zwrócona, zanim będzie można uzyskać dostęp do tablicy.The EnumerateFileSystemEntries and GetFileSystemEntries methods differ as follows: When you use EnumerateFileSystemEntries, you can start enumerating the collection of entries before the whole collection is returned; when you use GetFileSystemEntries, you must wait for the whole array of entries to be returned before you can access the array. W związku z tym podczas pracy z wieloma plikami i katalogami EnumerateFiles może być bardziej wydajny.Therefore, when you are working with many files and directories, EnumerateFiles can be more efficient.

Informacje o ścieżce względnej można określić za pomocą parametru path.You can specify relative path information with the path parameter. Informacje o ścieżce względnej są interpretowane jako odnoszące się do bieżącego katalogu roboczego, który można określić za pomocą metody GetCurrentDirectory.Relative path information is interpreted as relative to the current working directory, which you can determine by using the GetCurrentDirectory method.

Zobacz też

Dotyczy