My.Computer.FileSystem.FindInFiles メソッド
更新 : 2007 年 11 月
ファイル名を表し、指定されたテキストが含まれる文字列を、読み取り専用のコレクションとして返します。
' Usage
Dim value As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.FindInFiles(directory ,containsText ,ignoreCase ,searchType)
Dim value As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Computer.FileSystem.FindInFiles(directory ,containsText ,ignoreCase ,searchType ,fileWildcards)
' Declaration
Public Function FindInFiles( _
ByVal directory As String, _
ByVal containsText As String, _
ByVal ignoreCase As Boolean, _
ByVal searchType As SearchOption _
) As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
' -or-
Public Function FindInFiles( _
ByVal directory As String, _
ByVal containsText As String, _
ByVal ignoreCase As Boolean, _
ByVal searchType As SearchOption, _
ByVal fileWildcards As String() _
) As System.Collections.ObjectModel.ReadOnlyCollection(Of String)
パラメータ
Directory
検索するディレクトリを指定する String です。必ず指定します。containsText
検索文字列を指定する String です。必ず指定します。ignoreCase
大文字と小文字を区別して検索するかどうかを指定する Boolean です。既定値は True です。必ず指定します。searchType
SearchOption 列挙型 です。サブフォルダを含めるかどうかを指定します。既定値は SearchOption.SearchTopLevelOnly です。必ず指定します。fileWildcards
String 型の配列です。一致を調べるパターンです。必ず指定します。
戻り値
String 型の読み取り専用のコレクションです。
例外
次の条件を満たす場合は、例外が発生する可能性があります。
パスが無効です。1) 長さが 0 の文字列である、2) 空白だけが含まれている、3) 無効な文字が含まれている、4) デバイス パスである (\\.\ で開始されている)、のいずれかの理由が考えられます (ArgumentException)。
パスが Nothing であるため、有効ではありません (ArgumentNullException)。
directory が存在しません (DirectoryNotFoundException)。
directory が既存のファイルをポイントしています (IOException)。
パスがシステムで定義されている最大長 (PathTooLongException) を超えています。
パス内のファイル名またはディレクトリ名にコロン (:) が含まれているか、または形式が無効です (NotSupportedException)。
ユーザーがパスを表示するのに必要なアクセス許可を持っていません (SecurityException)。
ユーザーに必要なアクセス許可がありません (UnauthorizedAccessException)。
解説
指定されたパターンに一致するファイルが見つからなければ、空のコレクションが返されます。
処理手順
My.Computer.FileSystem.FindInFiles メソッドに関連するタスクの例を次の表に示します。
目的 |
参照項目 |
---|---|
指定された文字列を含むファイルをディレクトリから検索する |
使用例
次の例は、C:\TestDir ディレクトリから "sample string" の文字列を含むファイルをすべて探し出し、結果を ListBox1 に表示します。
Dim list As System.Collections.ObjectModel.ReadOnlyCollection _
(Of String)
list = My.Computer.FileSystem.FindInFiles("C:\TestDir", _
"sample string", True, FileIO.SearchOption.SearchTopLevelOnly)
For Each name As String In list
ListBox1.Items.Add(name)
Next
この例を実行するためには、プロジェクトに ListBox1 という名前の ListBox が含まれている必要があります。
必要条件
名前空間 : Microsoft.VisualBasic.MyServices
クラス : FileSystemProxy (FileSystem へのアクセスを可能にします)
アセンブリ : Microsoft Visual Basic ランタイム (Microsoft.VisualBasic.dll 内)
使用可能なプロジェクトの種類
プロジェクトの種類 |
使用可/不可 |
---|---|
Windows アプリケーション |
あり |
クラス ライブラリ |
あり |
コンソール アプリケーション |
あり |
Windows コントロール ライブラリ |
あり |
Web コントロール ライブラリ |
あり |
Windows サービス |
あり |
Web サイト |
あり |
アクセス許可
次のアクセス許可が必要になる可能性があります。
アクセス許可 |
説明 |
---|---|
ファイルとフォルダへのアクセス許可を制御します。関連する列挙値 : Unrestricted。 |
詳細については、「コード アクセス セキュリティ」および「アクセス許可の要求」を参照してください。
参照
処理手順
チュートリアル : Visual Basic によるファイルとディレクトリの操作