現在のディレクトリから、"*.txt" などの指定した searchPattern に一致するファイルの一覧を返します。
Overloads Public Function GetFiles( _
ByVal searchPattern As String _) As FileInfo()
[C#]
public FileInfo[] GetFiles(stringsearchPattern);
[C++]
public: FileInfo* GetFiles(String* searchPattern) [];
[JScript]
public function GetFiles(
searchPattern : String) : FileInfo[];
パラメータ
- searchPattern
"*.txt" などの検索文字列。
戻り値
FileInfo 型の配列。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | searchPattern が null 参照 (Visual Basic では Nothing) です。 |
DirectoryNotFoundException | 割り当てられていないドライブであるなど、パスが無効です。 |
SecurityException | 呼び出し元に、必要なアクセス許可がありません。 |
解説
ワイルドカードを使用できます。たとえば、 searchPattern に文字列 "*.txt" を指定すると、拡張子が "txt" のファイル名がすべて検索されます。 searchPattern に文字列 "s*" を指定すると、文字 "s" で始まるすべてのファイル名が検索されます。ファイルが存在しないか、 DirectoryInfo 内に searchPattern 文字列に一致するファイルがない場合、このメソッドは空の配列を返します。
拡張子の長さがちょうど 3 文字の場合の searchPattern の一致の動作は、拡張子が 3 文字を超えている場合の動作と異なります。ちょうど 3 文字の searchPattern の場合は、3 文字以上の拡張子を持つファイルが返されます。 searchPattern の文字数が 1、2、または 4 以上の場合は、その長さを持つ拡張子のファイルだけが返されます。
searchPattern パラメータにさまざまな長さが設定された場合の動作を次のリストに示します。
- "*.abc" の場合、.abc、.abcd、.abcde、.abcdef などの拡張子を持つファイルが返されます。
- "*.abcd" の場合、拡張子 .abcd のファイルだけが返されます。
- "*.abcde" の場合、拡張子 .abcde のファイルだけが返されます。
- "*.abcdef" の場合、拡張子 .abcdef のファイルだけが返されます。
このメソッドの使用例については、以下の「使用例」を参照してください。その他の一般的な I/O タスクまたは関連する I/O タスクの例を次の表に示します。
実行するタスク | 参考例があるトピック |
---|---|
テキスト ファイルを作成する。 | ファイルへのテキストの書き込み |
テキスト ファイルに書き込む。 | ファイルへのテキストの書き込み |
テキスト ファイルから読み取る。 | ファイルからのテキストの読み取り |
ディレクトリをコピーする。 | Directory |
ディレクトリの名前を変更、またはディレクトリを移動する。 | Directory.Move |
ファイルの名前を変更、またはファイルを移動する。 | File.Move |
ディレクトリを削除する。 | Directory.Delete |
ディレクトリを作成する。 | CreateDirectory |
サブディレクトリを作成する。 | CreateSubdirectory |
ディレクトリ内のファイルを参照する。 | Name |
ディレクトリ内のサブディレクトリを参照する。 | GetDirectories |
ディレクトリ内のすべてのサブディレクトリにあるすべてのファイルを参照する。 | GetFileSystemInfos |
ディレクトリのサイズを取得する。 | Directory |
ファイルが存在するかどうかを判別する。 | Exists |
ディレクトリが存在するかどうかを判別する。 | Exists |
ファイルの属性を取得する。 | GetAttributes |
ファイルの属性を設定する。 | SetAttributes |
使用例
[Visual Basic, C#, C++] 指定した文字を含むディレクトリおよびファイルの数をカウントする例を次に示します。
Imports System
Imports System.IO
Public Class Test
Public Shared Sub Main()
Try
Dim di As DirectoryInfo = New DirectoryInfo("c:\")
'Get only subdirectories that contain the letter "p."
Dim dirs As DirectoryInfo() = di.GetDirectories("*p*")
Console.WriteLine("Number of directories with a p: {0}", dirs.Length)
Dim diNext As DirectoryInfo
' Count all files in each subdirectory that contain the letter "e."
For Each diNext In dirs
Console.WriteLine("The number of files in {0} with an e is {1}", _
diNext, diNext.GetFiles("*e*").Length)
Next
Catch e As Exception
Console.WriteLine("The process failed: {0}", e.ToString())
End Try
End Sub
End Class
[C#]
using System;
using System.IO;
class Test
{
public static void Main()
{
try
{
DirectoryInfo di = new DirectoryInfo(@"c:\");
// Get only subdirectories that contain the letter "p."
DirectoryInfo[] dirs = di.GetDirectories("*p*");
Console.WriteLine("Number of directories with a p: {0}", dirs.Length);
// Count all the files in each subdirectory that contain the letter "e."
foreach (DirectoryInfo diNext in dirs)
{
Console.WriteLine("The number of files in {0} with an e is {1}", diNext,
diNext.GetFiles("*e*").Length);
}
}
catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
using namespace System::IO;
int main() {
try {
DirectoryInfo* di = new DirectoryInfo(S"c:\\");
// Get only subdirectories that contain the letter "p."
DirectoryInfo* dirs[] = di->GetDirectories(S"*p*");
Console::WriteLine(S"Number of directories with a p: {0}", __box(dirs->Length));
// Count all the files in each subdirectory that contain the letter S"e."
Collections::IEnumerator* myEnum = dirs->GetEnumerator();
while (myEnum->MoveNext()) {
DirectoryInfo* diNext = __try_cast<DirectoryInfo*>(myEnum->Current);
Console::WriteLine(S"The number of files in {0} with an e is {1}", diNext,
__box(diNext->GetFiles(S"*e*")->Length));
}
} catch (Exception* e) {
Console::WriteLine(S"The process failed: {0}", e);
}
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
.NET Framework セキュリティ:
- FileIOPermission (ファイルやディレクトリから読み取ったり、それらのパスにアクセスしたりするために必要なアクセス許可) FileIOPermissionAccess.Read 、 FileIOPermissionAccess.PathDiscovery (関連する列挙体)
参照
DirectoryInfo クラス | DirectoryInfo メンバ | System.IO 名前空間 | DirectoryInfo.GetFiles オーバーロードの一覧 | 入出力操作 | ファイルからのテキストの読み取り | ファイルへのテキストの書き込み