Directory.GetFiles Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí názvy souborů, které splňují zadaná kritéria.
Přetížení
GetFiles(String) |
Vrátí názvy souborů (včetně jejich cest) v zadaném adresáři. |
GetFiles(String, String) |
Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři. |
GetFiles(String, String, EnumerationOptions) |
Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání a možnostem výčtu v zadaném adresáři. |
GetFiles(String, String, SearchOption) |
Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři, pomocí hodnoty k určení, zda se mají prohledávat podadresáře. |
GetFiles(String)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí názvy souborů (včetně jejich cest) v zadaném adresáři.
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()
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
Návraty
Pole plných jmen (včetně cest) pro soubory v zadaném adresáři nebo prázdné pole, pokud nejsou nalezeny žádné soubory.
Výjimky
Volající nemá požadované oprávnění.
Verze .NET Framework a .NET Core starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars() .
path
je null
.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Zadaná cesta nebyla nalezena nebo je neplatná (například je na nemapované jednotce).
Příklady
Následující příklad ukazuje, jak použít metodu GetFiles k vrácení názvů souborů z umístění zadaného uživatelem. Příklad je nakonfigurovaný tak, aby zachytil všechny chyby společné pro tuto metodu.
// 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
Poznámky
Metody EnumerateFiles a GetFiles se liší následujícím způsobem: Při použití EnumerateFilesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetFilesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateFiles může být efektivnější.
Vrácené názvy souborů se připojí k zadanému path
parametru.
Tato metoda je identická GetFiles(String, String) s hvězdičkou (*) zadanou jako vzor vyhledávání.
Parametr path
může zadat informace o relativní nebo absolutní cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Informace o získání aktuálního pracovního adresáře najdete v tématu GetCurrentDirectory.
Pořadí vrácených názvů souborů není zaručeno. Sort pokud se vyžaduje konkrétní pořadí řazení, použijte metodu .
Rozlišování velkých a malých písmen parametru path
odpovídá rozlišení systému souborů, na kterém je kód spuštěn. Například nerozlišuje malá a malá písmena v systému souborů NTFS (výchozí systém souborů Windows) a v systémech souborů Linux se rozlišují malá a malá písmena.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.
Viz také
- Vstupně-výstupní operace souborů a datových proudů
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
Platí pro
GetFiles(String, String)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři.
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()
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy souborů v path
souboru . Tento parametr může obsahovat kombinaci platných literálových cest a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
Návraty
Pole celých jmen (včetně cest) pro soubory v zadaném adresáři, které odpovídají zadanému vzoru hledání, nebo prázdné pole, pokud nebyly nalezeny žádné soubory.
Výjimky
Volající nemá požadované oprávnění.
Verze .NET Framework a .NET Core starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Na neplatné znaky se můžete dotazovat pomocí příkazu GetInvalidPathChars().
-nebo-
searchPattern
neobsahuje platný vzor.
path
nebo searchPattern
je null
.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Zadaná cesta nebyla nalezena nebo je neplatná (například je na nemapované jednotce).
Příklady
Následující příklad spočítá počet souborů, které začínají zadaným písmenem.
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
Poznámky
Vrácené názvy souborů jsou připojeny k zadanému path
parametru a pořadí vrácených názvů souborů není zaručeno. Pokud je vyžadováno konkrétní pořadí řazení, použijte metodu Sort .
searchPattern
může být kombinací literálu a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | Přesně jeden znak v této pozici. |
Jiné znaky než zástupný znak jsou literálové znaky. Například searchPattern
řetězec "*t" vyhledá všechna jména končící path
písmenem "t". Řetězec searchPattern
"s*" vyhledá všechna jména začínající path
písmenem "s".
searchPattern
nesmí končit dvěma tečkami ("..") nebo obsahovat dvě tečky ("..") za nimi DirectorySeparatorChar nebo AltDirectorySeparatorChar, ani nesmí obsahovat neplatné znaky. Pomocí metody se můžete dotazovat na neplatné znaky GetInvalidPathChars .
Poznámka
Pouze rozhraní .NET Framework: Pokud použijete zástupný znak hvězdičky v searchPattern
a zadáte tříznakovou příponu souboru, například "*.txt", vrátí tato metoda také soubory s příponami, které začínají zadanou příponou. Například vzor hledání "*.xls" vrátí "book.xls" i "book.xlsx". K tomuto chování dochází pouze v případě, že se ve vzoru hledání používá hvězdička a zadaná přípona souboru má přesně tři znaky. Pokud použijete zástupný znak otazníku někde ve vzoru hledání, vrátí tato metoda pouze soubory, které přesně odpovídají zadané příponě souboru. Následující tabulka znázorňuje tuto anomálii v rozhraní .NET Framework.
Soubory v adresáři | Způsob hledání | Vrátí se .NET 5 nebo novější. | Vrátí rozhraní .NET Framework |
---|---|---|---|
file.ai, file.aif | *.Ai | 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 |
Poznámka
Vzhledem k tomu, že tato metoda kontroluje názvy souborů s formátem názvu souboru 8.3 i formátem dlouhého názvu souboru, může způsob hledání podobný "*1*.txt" vrátit neočekávané názvy souborů. Například použití vyhledávacího vzoru "*1*.txt" vrátí "longfilename.txt", protože ekvivalentní formát názvu souboru 8.3 je "LONGFI~1.TXT".
Metody EnumerateFiles a GetFiles se liší následujícím způsobem: Při použití EnumerateFilesmůžete spustit výčet kolekce názvů před vrácením celé kolekce; při použití GetFilesmusíte počkat, až se vrátí celé pole názvů, abyste měli přístup k matici. Proto při práci s mnoha soubory a adresáři EnumerateFiles může být efektivnější.
Parametr path
může zadat informace o relativní nebo absolutní cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Informace o získání aktuálního pracovního adresáře najdete v tématu GetCurrentDirectory.
Rozlišování velkých a malých písmen parametru path
odpovídá systému souborů, na kterém je kód spuštěn. Například v systému souborů NTFS (výchozí systém souborů Windows) se nerozlišují malá a velká písmena a v systémech souborů Linux.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.
Viz také
- Vstupně-výstupní operace souborů a datových proudů
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru
Platí pro
GetFiles(String, String, EnumerationOptions)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru vyhledávání a možnostem výčtu v zadaném adresáři.
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()
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy souborů v path
. Tento parametr může obsahovat kombinaci platných literálů a zástupných znaků, ale nepodporuje regulární výrazy.
- enumerationOptions
- EnumerationOptions
Objekt, který popisuje konfiguraci vyhledávání a výčtu, která se má použít.
Návraty
Pole úplných názvů (včetně cest) pro soubory v zadaném adresáři, které odpovídají zadanému vzoru hledání a možnostem výčtu, nebo prázdné pole, pokud nejsou nalezeny žádné soubory.
Výjimky
Volající nemá požadované oprávnění.
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Na neplatné znaky se můžete dotazovat pomocí příkazu GetInvalidPathChars().
-nebo-
searchPattern
neobsahuje platný vzor.
path
nebo searchPattern
je null
.
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Zadaná cesta nebyla nalezena nebo je neplatná (například je na nenamapované jednotce).
Poznámky
Vrácené názvy souborů jsou připojeny k zadanému path
parametru a pořadí vrácených názvů souborů není zaručeno. Pokud je požadováno konkrétní pořadí řazení, použijte metodu Sort .
searchPattern
může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | Přesně jeden znak na této pozici. |
Jiné znaky než zástupný znak jsou literální znaky. Například searchPattern
řetězec "*t" vyhledá všechna jména path
končící písmenem "t". Řetězec searchPattern
"s*" vyhledá všechna jména path
začínající písmenem "s".
searchPattern
nesmí končit dvěma tečkami (..) nebo obsahovat dvě tečky (..) následované tečkami DirectorySeparatorChar nebo AltDirectorySeparatorChara nesmí obsahovat žádné neplatné znaky. Na neplatné znaky se můžete dotazovat pomocí metody .GetInvalidPathChars
Poznámka
Pouze rozhraní .NET Framework: Pokud použijete zástupný znak hvězdička v searchPattern
a zadáte tříznakovou příponu souboru, například "*.txt", vrátí tato metoda také soubory s příponami, které začínají zadanou příponou. Například vzorec hledání "*.xls" vrátí "book.xls" i "book.xlsx". K tomuto chování dochází pouze v případě, že je ve vzoru hledání použita hvězdička a zadanou příponou souboru jsou přesně tři znaky. Pokud použijete zástupný znak otazníku někde ve vzoru hledání, vrátí tato metoda pouze soubory, které přesně odpovídají zadané příponě souboru. Následující tabulka znázorňuje tuto anomálii v rozhraní .NET Framework.
Soubory v adresáři | Způsob hledání | Vrácení .NET 5+ | Rozhraní .NET Framework vrací |
---|---|---|---|
file.ai, file.aif | *.Ai | 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 |
Poznámka
Vzhledem k tomu, že tato metoda kontroluje názvy souborů ve formátu názvu souboru 8.3 i dlouhém formátu názvu souboru, může způsob hledání podobný "*1*.txt" vrátit neočekávané názvy souborů. Například při použití vzorce hledání "*1*.txt" se vrátí "longfilename.txt", protože ekvivalentní formát názvu souboru 8.3 je "LONGFI~1.TXT".
EnumerateFiles Metody a GetFiles se liší následujícím způsobem: Pokud použijete EnumerateFiles, můžete začít s vytvářením výčtu kolekce názvů před vrácením celé kolekce; při použití GetFilespříkazu musíte před přístupem k poli počkat na vrácení celého pole názvů. Proto, když pracujete s mnoha soubory a adresáři, EnumerateFiles může být efektivnější.
Parametr path
může určovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Pokud chcete získat aktuální pracovní adresář, přečtěte si téma GetCurrentDirectory.
Rozlišování velkých a malých písmen parametru path
odpovídá systému souborů, na kterém je kód spuštěn. Například v systému souborů NTFS (výchozí systém souborů Windows) se nerozlišují malá a velká písmena a v systémech souborů Linux.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.
Platí pro
GetFiles(String, String, SearchOption)
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
- Zdroj:
- Directory.cs
Vrátí názvy souborů (včetně jejich cest), které odpovídají zadanému vzoru hledání v zadaném adresáři, pomocí hodnoty k určení, zda se mají prohledávat podadresáře.
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()
Parametry
- path
- String
Relativní nebo absolutní cesta k adresáři, který chcete vyhledat. Tento řetězec neodlišuje velká a malá písmena.
- searchPattern
- String
Hledaný řetězec, který se má shodovat s názvy souborů v path
. Tento parametr může obsahovat kombinaci platné literálové cesty a zástupných znaků (* a ?), ale nepodporuje regulární výrazy.
- searchOption
- SearchOption
Jedna z hodnot výčtu, která určuje, zda má operace hledání obsahovat všechny podadresáře nebo pouze aktuální adresář.
Návraty
Pole celých jmen (včetně cest) pro soubory v zadaném adresáři, které odpovídají zadanému vzoru hledání a možnosti, nebo prázdné pole, pokud nebyly nalezeny žádné soubory.
Výjimky
.NET Framework a .NET Core verze starší než 2.1: path
je řetězec nulové délky, obsahuje pouze prázdné znaky nebo obsahuje jeden nebo více neplatných znaků. Pomocí metody můžete zadat dotaz na neplatné znaky GetInvalidPathChars() .
-nebo-
searchPattern
neobsahuje platný vzor.
path
nebo searchpattern
je null
.
searchOption
není platná SearchOption hodnota.
Volající nemá požadované oprávnění.
Zadaná cesta nebyla nalezena nebo je neplatná (například je na nenamapované jednotce).
Zadaná cesta, název souboru nebo obojí překračují maximální délku definovanou systémem.
Poznámky
Vrácené názvy souborů jsou připojeny k zadanému parametru path
a pořadí vrácených názvů souborů není zaručeno. Pokud je požadováno konkrétní pořadí řazení, použijte metodu Sort .
searchPattern
může být kombinací literálů a zástupných znaků, ale nepodporuje regulární výrazy. V systému jsou povoleny následující specifikátory zástupných searchPattern
znaků.
Specifikátor zástupných znaků | Shody |
---|---|
* (hvězdička) | Na této pozici není žádný nebo více znaků. |
? (otazník) | Přesně jeden znak na této pozici. |
Jiné znaky než zástupný znak jsou literální znaky. Například searchPattern
řetězec "*t" vyhledá všechna jména path
končící písmenem "t". Řetězec searchPattern
"s*" vyhledá všechna jména path
začínající písmenem "s".
searchPattern
nesmí končit dvěma tečkami (..) nebo obsahovat dvě tečky (..) následované tečkami DirectorySeparatorChar nebo AltDirectorySeparatorChara nesmí obsahovat žádné neplatné znaky. Na neplatné znaky se můžete dotazovat pomocí metody .GetInvalidPathChars
Poznámka
Pouze rozhraní .NET Framework: Pokud použijete zástupný znak hvězdička v searchPattern
a zadáte tříznakovou příponu souboru, například "*.txt", vrátí tato metoda také soubory s příponami, které začínají zadanou příponou. Například vzorec hledání "*.xls" vrátí "book.xls" i "book.xlsx". K tomuto chování dochází pouze v případě, že je ve vzoru hledání použita hvězdička a zadanou příponou souboru jsou přesně tři znaky. Pokud použijete zástupný znak otazníku někde ve vzoru hledání, vrátí tato metoda pouze soubory, které přesně odpovídají zadané příponě souboru. Následující tabulka znázorňuje tuto anomálii v rozhraní .NET Framework.
Soubory v adresáři | Způsob hledání | Vrácení .NET 5+ | Rozhraní .NET Framework vrací |
---|---|---|---|
file.ai, file.aif | *.Ai | 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 |
Poznámka
Vzhledem k tomu, že tato metoda kontroluje názvy souborů ve formátu názvu souboru 8.3 i dlouhém formátu názvu souboru, může způsob hledání podobný "*1*.txt" vrátit neočekávané názvy souborů. Například při použití vzorce hledání "*1*.txt" se vrátí "longfilename.txt", protože ekvivalentní formát názvu souboru 8.3 je "LONGFI~1.TXT".
EnumerateFiles Metody a GetFiles se liší následujícím způsobem: Pokud použijete EnumerateFiles, můžete začít s vytvářením výčtu kolekce názvů před vrácením celé kolekce; při použití GetFilespříkazu musíte před přístupem k poli počkat na vrácení celého pole názvů. Proto, když pracujete s mnoha soubory a adresáři, EnumerateFiles může být efektivnější.
Názvy souborů obsahují úplnou cestu.
Parametr path
může určovat relativní nebo absolutní informace o cestě. Informace o relativní cestě jsou vykládány jako relativní k aktuálnímu pracovnímu adresáři. Pokud chcete získat aktuální pracovní adresář, přečtěte si téma GetCurrentDirectory.
Rozlišování velkých a malých písmen parametru path
odpovídá systému souborů, na kterém je kód spuštěn. Například v systému souborů NTFS (výchozí systém souborů Windows) se nerozlišují malá a velká písmena a v systémech souborů Linux.
Seznam běžných vstupně-výstupních úloh najdete v tématu Běžné vstupně-výstupní úlohy.
Viz také
- Vstupně-výstupní operace souborů a datových proudů
- Postupy: Čtení textu ze souboru
- Postupy: Zápis textu do souboru