条件と一致するファイルを検索して列挙する
条件と一致するファイルを検索して列挙するサンプルです。
サンプルの実行画面

ソースコード
[FindFile.frm]
'■FindFirstFile '指定のディレクトリ、ファイル名を検索する '<引数> 'lpFileName ディレクトリ名かファイル名 (ワイルドカード使用可能) 'lpFindFileData WIN32_FIND_DATA構造体 '<戻り値> '正常終了の時ファイル検索ハンドル 'エラーの時INVALID_HANDLE_VALUE Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long '■FindNextFile 'FindFirstFileに続き次を検索 '<引数> 'hFindFile ファイル検索ハンドル 'lpFindFileData WIN32_FIND_DATA構造体 '<戻り値> '正常終了0以外 Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long '■FindClose 'ファイル検索ハンドルを解放する '<引数> 'hFindFile ファイル検索ハンドル '<戻り値> '正常終了0以外 Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long Private Type FILETIME dwLowDateTime As Long '下位32ビット dwHighDateTime As Long '上位32ビット End Type Private Type WIN32_FIND_DATA dwFileAttributes As Long 'ファイルの属性 ftCreationTime As FILETIME 'ファイルの作成日時 ftLastAccessTime As FILETIME '最終アクセス日 ftLastWriteTime As FILETIME '最終更新日 nFileSizeHigh As Long 'ファイルサイズ(上位) nFileSizeLow As Long 'ファイルサイズ(下位) dwReserved0 As Long '常に0 dwReserved1 As Long '常に0 cFileName As String * 260 'ファイル名 cAlternate As String * 14 ' End Type Const INVALID_HANDLE_VALUE = &HFFFFFFFF Private Sub Command1_Click() Dim Ret As Long '戻り値 Dim FileHandle As Long 'ファイルの検索ハンドル Dim Win32 As WIN32_FIND_DATA 'WIN32_FIND_DATA構造体 Dim nFile As String 'ファイル名 Dim nPath As String 'パス名 Dim Title As String 'NULL文字を抜いたファイル名 Dim Top As Long 'NULL文字の位置 '初期化 List1.Clear 'ディレクトリ、ファイル名の設定 nFile = Text1.Text & Text2.Text 'ファイルを検索してファイル検索ハンドルを取得する FileHandle = FindFirstFile(nFile, Win32) MousePointer = 11 Ret = 1 'ファイルがある限りループ Do While Ret <> 0 'NULLを取っ払う Top = InStr(Win32.cFileName, vbNullChar) Title = Left(Win32.cFileName, Top - 1) List1.AddItem Text1.Text & Title '続いてファイルを検索する Ret = FindNextFile(FileHandle, Win32) Loop '検索ハンドルの解放 Ret = FindClose(FileHandle) MousePointer = 0 End Sub
ソースコード一式のダウンロード
vbapi_findfile.zip 1.63 KB (1,677 バイト)
このサンプルの動作環境について
このサンプルは 「Windows98」及び「Microsoft Visual Basic 5.0 Professional Edition」で確認しております。環境が異なる場合は正常に動作しない場合もございますのでご了承下さい。
スポンサーリンク
関連記事
前の記事: | 処理時間を計測する |
次の記事: | 新しいウインドウ(コントロール)を作成する |
公開日:2015年03月06日
記事NO:00413