VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

リンク元へ戻ります。 ファイル関係のメニュー
1.FileSystemObject のファイルに関するメソッド・プロパティについて
2.ファイルに関する基本的なワンポイントサンプル集
3.フォルダー内のファイル名を読み込む(Dir 関数の使用例)
4.指定のファイルパスを検索する
5.エクスプローラーからファイル名をドラッグ・アンド・ドロップで取得する
6.プログラムから HTML ヘルプファイルを開く及び閉じる
7.Windows ヘルプ形式のヘルプファイルの目次トピックを表示する方法
8.ファイルに関するパス操作色々
9.ファイル・フォルダーをごみ箱へ
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.その他、当サイト内に掲載のファイルに関するサンプル


4.指定のファイルパスを検索する
1.指定のファイルパスを検索する
2. 
3. 
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6)
Option :[Option Explicit]
参照設定:                  参照設定方法参照
使用 API:SearchTreeForFile
その他 :このサンプルは、 Win32 APIを使用しておりますので、ある程度Win32 API が理解できる方がお使い下さい。
    :
このページのトップへ移動します。 1.指定のファイルパスを検索する

Option Explicit   'SampleNo=141   2002.05.17

'指定されたファイルのディレクトリツリーを検索します。
Private Declare Function SearchTreeForFile Lib "imagehlp.dll" _
  (ByVal RootPath As String, ByVal InputPathName As String, _
   ByVal OutputPathBuffer As String) As Long

Private Sub Command1_Click()
  Label3.Caption = ""
  DoEvents
  Label3.Caption = fFilePath(Text2.Text, Text1.Text)

'  Dim myPath As String
'  myPath = fFilePath("C:\Program Files", "VB6.EXE")
  Debug.Print fFilePath("C:\Windows\", "Regedit.exe")
End Sub

'**************************************************************
' 指定されたファイルのディレクトリツリーを検索します
' 使用例   :myPath = fFilePath("C:\Windows\", "Regedit.exe")
' RootFolder :検索開始フォルダー名
' FileName  :検索するファイル名
' 返り値   :見つかったファイルのフルパス
'**************************************************************
Private Function fFilePath(ByVal RootFolder As String, _
              ByVal FileName As String) As String
  Dim Ret As Long
  Dim strBuffer As String
  strBuffer = String$(256, Chr$(0))
  Ret = SearchTreeForFile(RootFolder, FileName, strBuffer)
  If Ret Then
    fFilePath = Left$(strBuffer, InStr(strBuffer, vbNullChar) - 1)
  Else
    fFilePath = "File Not Found"
  End If
End Function

SearchTreeForFile APIを使用すればご覧のように簡単な記述でファイルが検索できますが、同じ名前のファイルが複数存在する場合は、最初に見つかったファイルのパスしか返しません。
又、カレントフォルダーを指定するとカレントフォルダーに見つからない場合ルートディレクトリから探します。
スタートフォルダーは解る範囲で絞り込んで記入した方が検索時間は早いです。
色々、試して頂いてこのAPIの特徴に応じた使い方をして下さい。
当然ながらヌル値を指定するとエラーとなりますので事前に処置しておいて下さい。

このページのトップへ移動します。 2. 



このページのトップへ移動します。 3.


このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)




このページのトップへ移動します。