ファイル名部分の参照を行うフルパス名取得の例

キーワード:

GlobalAlloc, GetFullPathName, lstrcpy, GlobalFree

サンプルコード:

'主な宣言
Declare Function GetFullPathName Lib "kernel32" Alias "GetFullPathNameA" ( _
	ByVal FileName As String, _
	ByVal PathNameSize As Long, _
	ByVal PathName As Long, _
	ByRef FilePart As Long) As Long

Declare Function PtrToStr Lib "kernel32" Alias "lstrcpyA" ( _
	ByVal Dest As String, ByVal pSrc As Long) As Long

' フルパス名とファイル名部分表示
Private Sub DispFullPathName()
	Dim pPathName As Long
	Dim pFilePart As Long
	Dim PathName As String * MAX_PATH
	Dim FilePart As String * MAX_PATH

	'フルパス名用バッファ割り当て
	pPathName = GlobalAlloc(GMEM_FIXED, MAX_PATH)

	'フルパス名取得
	GetFullPathName "aaa.txt", MAX_PATH, pPathName, pFilePart

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

	'表示
	MsgBox "パス:" & Left(PathName, InStr(PathName, vbNullChar) - 1) & vbCr & _
		"ファイル名部分:" & Left(FilePart, InStr(FilePart, vbNullChar) - 1)

	'フルパス用バッファ開放
	GlobalFree pPathName
End Sub
(original text:1998/12/25 更新)

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