パス名の各種操作(Y)          <TOP>


パス名操作に関するAPIをテストしています。

PathIsDirectory 指定したディレクトリが存在するかどうか判定
PathIsDirectoryEmpty バスで示されるディレクトリが空かどうか確認
PathIsLFNFileSpec ファイル名前が長いフォーマットにあるどうか判断
PathIsNetworkPath ネットワークパスかどうかの判断
PathIsPrefix 有効なプレフィックスを含むかどうか判断
PathIsRelative パスが相対かどうかを判断
PathIsRoot ルートパスかどうかを判断

 

 

'================================================================
'= パス名の操作(Y)
'=    (PathFunctions3.bas)
'================================================================
#include "Windows.bi"

' 指定したディレクトリが存在するかどうか判定
Declare Function Api_PathIsDirectory& Lib "shlwapi" Alias "PathIsDirectoryA" (ByVal pszPath$)

' バスで示されるディレクトリが空かどうか確認
Declare Function Api_PathIsDirectoryEmpty& Lib "shlwapi" Alias "PathIsDirectoryEmptyA" (ByVal pszPath$)

' ファイル名前が長いフォーマットにあるどうか判断
Declare Function Api_PathIsLFNFileSpec& Lib "shlwapi" Alias "PathIsLFNFileSpecA" (ByVal lpName$)

' ネットワークパスかどうかの判断
Declare Function Api_PathIsNetworkPath& Lib "shlwapi" Alias "PathIsNetworkPathA" (ByVal pszPath$)

' 有効なプレフィックスを含むかどうか判断
Declare Function Api_PathIsPrefix& Lib "shlwapi" Alias "PathIsPrefixA" (ByVal pszPrefix$, ByVal pszPath$)

' パスが相対かどうかを判断
Declare Function Api_PathIsRelative& Lib "shlwapi" Alias "PathIsRelativeA" (ByVal pszPath$)

' ルートパスかどうかを判断
Declare Function Api_PathIsRoot& Lib "shlwapi" Alias "PathIsRootA" (ByVal pszPath$)

Var Shared List1 As Object

List1.Attach GetDlgItem("List1") : List1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Var Temp0 As String
    Var Temp1 As String
    Var State As String
    Var Msg As String
    Var Ret As Long

    Temp1 = "c:\windows"
    List1.AddString "■PathIsDirectory"
    Ret = Api_PathIsDirectory(Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」の存在は? " & Msg

    List1.AddString "■PathIsDirectoryEmpty"
    Ret = Api_PathIsDirectoryEmpty(Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」は空かどうか? " & Msg

    Temp1 = "c:\fb\verylongfile.extension"
    List1.AddString "■PathIsLFNFileSpec"
    Ret = Api_PathIsLFNFileSpec(Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」はロングファイル形式? " & Msg

    Temp1 = "\\valuestar\c:\test.txt"
    List1.AddString "■PathIsNetworkPath"
    Ret = Api_PathIsNetworkPath(Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」はNetworkPath? " & Msg

    Temp0 = "d:\"
    Temp1 = "c:\fb\test.txt"
    List1.AddString "■PathIsPrefix"
    Ret = Api_PathIsPrefix(Temp0, Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」に「" & Temp0 & "」は含まれているか? " & Msg

    Temp1 = "c:\test.txt"
    List1.AddString "■PathIsRelative"
    Ret = Api_PathIsRelative(Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」は相対パス? " & Msg

    Temp1 = "z:\"
    List1.AddString "■PathIsRoot"
    Ret = Api_PathIsRoot(Temp1)
    GoSub *Hantei
    List1.AddString " 「" & Temp1 & "」はルートパス? " & Msg

    Exit Sub

*Hantei
    If Ret <> 0 Then
        Msg = "True"
    Else
        Msg = "False"
    End If
    Return

End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End