Directory.GetFiles メソッド
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定した条件を満たすファイルの名前を返します。
GetFiles(String) |
指定したディレクトリ内のファイルの名前 (パスを含む) を返します。 |
GetFiles(String, String) |
指定したディレクトリ内の指定した検索パターンに一致するファイル名 (パスを含む) を返します。 |
GetFiles(String, String, EnumerationOptions) |
指定したディレクトリ内にあり、指定した検索パターンと列挙オプションに一致するファイルの名前 (パスを含む) を返します。 |
GetFiles(String, String, SearchOption) |
指定したディレクトリの中から、指定した検索パターンに一致し、サブディレクトリを検索するかどうかを決定する値を持つファイル名 (パスを含む) を返します。 |
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定したディレクトリ内のファイルの名前 (パスを含む) を返します。
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()
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
戻り値
指定したディレクトリ内のファイルの完全名 (パスを含む) の配列。または、ファイルが見つからない場合は空の配列。
例外
呼び出し元に、必要なアクセス許可がありません。
2.1 より前のバージョンの .NET Framework と .NET Core: path
は長さ 0 の文字列、空白のみを含む、または 1 つ以上の無効な文字を含みます。 正しくない文字を照会するには、GetInvalidPathChars() メソッドを使用します。
path
が null
です。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
指定されたパスが見つからないか正しくありません (たとえば、マップされていないドライブ上のパスなど)。
例
次の例では、 メソッドを使用して、ユーザー指定の GetFiles 場所からファイル名を返す方法を示します。 この例は、このメソッドに共通するすべてのエラーをキャッチするように構成されています。
// 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
注釈
メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。を使用EnumerateFilesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetFilesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。
返されたファイル名は、指定された path
パラメーターに追加されます。
このメソッドは、検索パターンとしてアスタリスク (*) を指定した場合と同じです GetFiles(String, String) 。
パラメーターは path
、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 現在の作業ディレクトリを取得するには、「」を参照してください GetCurrentDirectory。
返されるファイル名の順序は保証されません。特定の Sort 並べ替え順序が必要な場合は、 メソッドを使用します。
パラメーターの大文字と小文字の path
区別は、コードが実行されているファイル システムの大文字と小文字が区別されます。 たとえば、NTFS (既定の Windows ファイル システム) では大文字と小文字が区別されず、Linux ファイル システムでは大文字と小文字が区別されます。
共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。
こちらもご覧ください
適用対象
.NET 9 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定したディレクトリ内の指定した検索パターンに一致するファイル名 (パスを含む) を返します。
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()
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
- searchPattern
- String
path
内のファイル名と対応させる検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
戻り値
指定したディレクトリ内の指定した検索パターンに一致するファイルの完全名 (パスを含む) の配列。または、ファイルが見つからない場合は空の配列。
例外
呼び出し元に、必要なアクセス許可がありません。
2.1 より前のバージョンの .NET Framework と .NET Core: path
は長さ 0 の文字列、空白のみを含む、または 1 つ以上の無効な文字を含みます。
GetInvalidPathChars() を使用して、正しくない文字を検出するクエリを実行できます。
- または -
searchPattern
には有効なパターンが含まれていません。
path
または searchPattern
が null
です。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
指定されたパスが見つからないか正しくありません (たとえば、マップされていないドライブ上のパスなど)。
例
次の例では、指定した文字で始まるファイルの数をカウントします。
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
注釈
返されたファイル名は指定された path
パラメーターに追加され、返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 メソッドを使用 Sort します。
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 1 文字だけ。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern
文字列 "*t" は文字 "t" で path
終わるすべての名前を検索します。
searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
searchPattern
は、2 つのピリオド ("..") で終わることも、2 つのピリオド ("..") の後 DirectorySeparatorChar に または AltDirectorySeparatorCharを含めることも、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。
注意
.NET Framework のみ: で searchPattern
アスタリスクワイルドカード文字を使用し、3 文字のファイル拡張子 ("*.txt" など) を指定すると、このメソッドは、指定した拡張子で 始まる 拡張子を持つファイルも返します。 たとえば、検索パターン "*.xls" は "book.xls" と "book.xlsx" の両方を返します。 この動作は、検索パターンでアスタリスクが使用され、指定されたファイル拡張子が正確に 3 文字である場合にのみ発生します。 検索パターンのどこかで疑問符のワイルドカード文字を使用する場合、このメソッドは指定されたファイル拡張子と完全に一致するファイルのみを返します。 次の表は、.NET Framework でのこの異常を示しています。
ディレクトリ内のファイル | 検索パターン | .NET 5 以降の 戻り値 | .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 |
注意
このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を持つファイル名をチェックするため、"*1*.txt" のような検索パターンで予期しないファイル名が返される場合があります。 たとえば、"*1*.txt" の検索パターンを使用すると、同等の 8.3 ファイル名形式が "LONGFI~1.TXT" であるため、"longfilename.txt" が返されます。
メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。を使用EnumerateFilesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetFilesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。
パラメーターは path
、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 現在の作業ディレクトリを取得するには、「」を参照してください GetCurrentDirectory。
パラメーターの大文字と小文字の path
区別は、コードが実行されているファイル システムの大文字と小文字が区別されます。 たとえば、NTFS (既定の Windows ファイル システム) では大文字と小文字が区別されず、Linux ファイル システムでは大文字と小文字が区別されます。
共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。
こちらもご覧ください
適用対象
.NET 9 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定したディレクトリ内にあり、指定した検索パターンと列挙オプションに一致するファイルの名前 (パスを含む) を返します。
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()
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
- searchPattern
- String
path
内のファイル名と対応させる検索文字列。 このパラメーターに、有効なリテラルのパスとワイルドカード文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- enumerationOptions
- EnumerationOptions
使用する検索と列挙の構成を記述するオブジェクト。
戻り値
指定したディレクトリ内にあり、指定した検索パターンおよび列挙オプションに一致するファイルの完全名 (パスを含む) の配列。または、ファイルが見つからない場合は空の配列。
例外
呼び出し元に、必要なアクセス許可がありません。
2.1 より前のバージョンの .NET Framework と .NET Core: path
は長さ 0 の文字列、空白のみを含む、または 1 つ以上の無効な文字を含みます。
GetInvalidPathChars() を使用して、正しくない文字を検出するクエリを実行できます。
- または -
searchPattern
には有効なパターンが含まれていません。
path
または searchPattern
が null
です。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
指定されたパスが見つからないか正しくありません (たとえば、マップされていないドライブ上のパスなど)。
注釈
返されたファイル名は指定された path
パラメーターに追加され、返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 メソッドを使用 Sort します。
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 1 文字だけ。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern
文字列 "*t" は文字 "t" で path
終わるすべての名前を検索します。
searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
searchPattern
は、2 つのピリオド ("..") で終わることも、2 つのピリオド ("..") の後 DirectorySeparatorChar に または AltDirectorySeparatorCharを含めることも、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。
注意
.NET Framework のみ: で searchPattern
アスタリスクワイルドカード文字を使用し、3 文字のファイル拡張子 ("*.txt" など) を指定すると、このメソッドは、指定した拡張子で 始まる 拡張子を持つファイルも返します。 たとえば、検索パターン "*.xls" は "book.xls" と "book.xlsx" の両方を返します。 この動作は、検索パターンでアスタリスクが使用され、指定されたファイル拡張子が正確に 3 文字である場合にのみ発生します。 検索パターンのどこかで疑問符のワイルドカード文字を使用する場合、このメソッドは指定されたファイル拡張子と完全に一致するファイルのみを返します。 次の表は、.NET Framework でのこの異常を示しています。
ディレクトリ内のファイル | 検索パターン | .NET 5 以降の 戻り値 | .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 |
注意
このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を持つファイル名をチェックするため、"*1*.txt" のような検索パターンで予期しないファイル名が返される場合があります。 たとえば、"*1*.txt" の検索パターンを使用すると、同等の 8.3 ファイル名形式が "LONGFI~1.TXT" であるため、"longfilename.txt" が返されます。
メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。を使用EnumerateFilesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetFilesする場合は、名前の配列全体が返されるのを待ってから、配列にアクセスする必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。
パラメーターは path
、相対パスまたは絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 現在の作業ディレクトリを取得するには、「」を参照してください GetCurrentDirectory。
パラメーターの大文字と小文字の path
区別は、コードが実行されているファイル システムの大文字と小文字が区別されます。 たとえば、NTFS (既定の Windows ファイル システム) では大文字と小文字が区別されず、Linux ファイル システムでは大文字と小文字が区別されます。
共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。
適用対象
.NET 9 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Standard | 2.1 |
- ソース:
- Directory.cs
- ソース:
- Directory.cs
- ソース:
- Directory.cs
指定したディレクトリの中から、指定した検索パターンに一致し、サブディレクトリを検索するかどうかを決定する値を持つファイル名 (パスを含む) を返します。
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()
パラメーター
- path
- String
検索するディレクトリの相対パスまたは絶対パス。 この文字列の大文字と小文字は区別されません。
- searchPattern
- String
path
内のファイル名と対応させる検索文字列。 このパラメーターには有効なリテラルのパスとワイルドカード (* と ?) 文字の組み合わせを含めることができますが、正規表現はサポートされていません。
- searchOption
- SearchOption
検索操作にすべてのサブディレクトリを含めるのか、または現在のディレクトリのみを含めるのかを指定する列挙値の 1 つ。
戻り値
指定したディレクトリ内の指定した検索パターンおよびオプションに一致するファイルの完全名 (パスを含む) の配列。または、ファイルが見つからない場合は空の配列。
例外
2.1 より前のバージョンの .NET Framework と .NET Core: path
は長さ 0 の文字列、空白のみを含む、または 1 つ以上の無効な文字を含みます。
GetInvalidPathChars() メソッドを使用して、正しくない文字に対するクエリを実行できます。
- または -
searchPattern
には有効なパターンが含まれません。
path
または searchpattern
が null
です。
searchOption
は正しい SearchOption 値ではありません。
呼び出し元に、必要なアクセス許可がありません。
指定されたパスが見つからないか正しくありません (たとえば、マップされていないドライブ上のパスなど)。
指定したパス、ファイル名、またはその両方がシステム定義の最大長を超えています。
注釈
返されたファイル名は指定されたパラメーター path
に追加され、返されるファイル名の順序は保証されません。特定の並べ替え順序が必要な場合は、 メソッドを使用 Sort します。
searchPattern
にはリテラル文字とワイルドカード文字の組み合わせを指定できますが、正規表現はサポートされていません。 では、次のワイルドカード指定子を searchPattern
使用できます。
ワイルドカード指定子 | [一致する] |
---|---|
* (アスタリスク) | その位置の 0 個以上の文字。 |
? (疑問符) | その位置の 1 文字だけ。 |
ワイルドカード以外の文字はリテラル文字です。 たとえば、 searchPattern
文字列 "*t" は文字 "t" で path
終わるすべての名前を検索します。
searchPattern
文字列 "s*" は、文字 "s" でpath
始まるすべての名前を検索します。
searchPattern
は、2 つのピリオド ("..") で終わることはできません。また、2 つのピリオド ("..") の後 DirectorySeparatorChar に または AltDirectorySeparatorCharを指定することも、無効な文字を含めることもできます。 正しくない文字を照会するには、GetInvalidPathChars メソッドを使用します。
注意
.NET Framework のみ: で searchPattern
アスタリスク ワイルドカード文字を使用し、3 文字のファイル拡張子 ("*.txt" など) を指定すると、このメソッドは、指定した拡張子で 始まる 拡張子を持つファイルも返します。 たとえば、検索パターン "*.xls" は "book.xls" と "book.xlsx" の両方を返します。 この動作は、検索パターンでアスタリスクが使用され、指定されたファイル拡張子が 3 文字の場合にのみ発生します。 検索パターンのどこかで疑問符ワイルドカード文字を使用する場合、このメソッドは指定されたファイル拡張子と完全に一致するファイルのみを返します。 次の表は、.NET Framework でのこの異常を示しています。
ディレクトリ内のファイル | 検索パターン | .NET 5 以降の戻り値 | .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 |
注意
このメソッドは、8.3 ファイル名形式と長いファイル名形式の両方を持つファイル名をチェックするため、"*1*.txt" のような検索パターンで予期しないファイル名が返される場合があります。 たとえば、"*1*.txt" の検索パターンを使用すると、同等の 8.3 ファイル名形式が "LONGFI~1.TXT" であるため、"longfilename.txt" が返されます。
メソッドと GetFiles メソッドはEnumerateFiles次のように異なります。を使用EnumerateFilesすると、コレクション全体が返される前に名前のコレクションの列挙を開始できます。を使用GetFilesする場合は、配列にアクセスする前に、名前の配列全体が返されるのを待つ必要があります。 そのため、多くのファイルとディレクトリを操作する場合は、 EnumerateFiles の方が効率的です。
ファイル名には、完全なパスが含まれます。
パラメーターは path
、相対パス情報または絶対パス情報を指定できます。 相対パス情報は、現在の作業ディレクトリに対する相対パスとして解釈されます。 現在の作業ディレクトリを取得するには、「」を参照してください GetCurrentDirectory。
パラメーターの大文字と小文字の path
区別は、コードが実行されているファイル システムの大文字と小文字が区別されます。 たとえば、NTFS (既定の Windows ファイル システム) では大文字と小文字が区別されず、Linux ファイル システムでは大文字と小文字が区別されます。
共通 I/O タスクの一覧は、 共通 I/O タスク を参照してください。
こちらもご覧ください
適用対象
.NET 9 およびその他のバージョン
製品 | バージョン |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。