ファイル名部分を参照するSearchPathの例(VB)

キーワード:

GlobalAlloc, SearchPath, lstrcpy, GlobalFree

サンプルコード:

'主な宣言
Declare Function PtrToStr Lib "kernel32" Alias "lstrcpyA" (ByVal Dest As String, ByVal pSrc As Long) As Long

Declare Function SearchPath Lib "kernel32" Alias "SearchPathA" ( _
	ByVal PathName As String, _
	ByVal TargetFileName As String, _
	ByVal TargetFileExt As String, _
	ByVal ResultFileNameSize As Long, _
	ByVal ResultFileName As Long, _
	ByRef FilePart As Long) As Long

'ファイルの検索
Private Sub DoSearchPath()
	Dim pResultPath As Long
	Dim pFilePart As Long
	Dim Msg As String
	Dim ResultPath As String * 1000
	Dim FilePart As String * 1000

	'初期化
	pResultPath = GlobalAlloc(GMEM_FIXED, 1000)

	'ファイルの検索
		SearchPath _
		"a:\;a:\windows", _
		"notepad.exe", _
		vbNullString, _
		1000, _
		pResultPath, _
		pFilePart

	'ポインタを文字列に変換
	PtrToStr ResultPath, pResultPath
	PtrToStr FilePart, pFilePart

	'メッセージの作成
	Msg = "検索結果:" & Left(ResultPath, InStr(ResultPath, vbNullChar) - 1) & vbCr
	Msg = Msg & "ファイル名部分:" & Left(FilePart, InStr(FilePart, vbNullChar) - 1)

	'メッセージの表示
	MsgBox Msg

	'後処理
	GlobalFree pResultPath
End Sub
(original text:1998/12/25 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。