二つのファイル名の相対パスを取得 <TOP>
PathRelativePathTo 二つのファイル名の相対パスを取得
FILE_ATTRIBUTE_DIRECTORY(&H10)
ディレクトリ属性
FILE_ATTRIBUTE_NORMAL(&H80) 他のファイル属性を持たない
'================================================================ '= 二つのファイル名の相対パスを取得 '= (PathRelativePathTo.bas) '================================================================ #include "Windows.bi" #define FILE_ATTRIBUTE_DIRECTORY &H10 'ディレクトリ属性 #define FILE_ATTRIBUTE_NORMAL &H80 '他のファイル属性を持たない ' 二つのパス間の相対パスを取得 Declare Function Api_PathRelativePathTo& Lib "shlwapi" Alias "PathRelativePathToA" (ByVal pszPath$, ByVal pszFrom$, ByVal dwAttrFrom&, ByVal pszTo$, ByVal dwAttrTo&) Var Shared Edit1 As Object Var Shared Edit2 As Object Var Shared Text1 As Object Var Shared Button1 As Object Edit1.Attach GetDlgItem("Edit1") : Edit1.SetFontSize 12 Edit2.Attach GetDlgItem("Edit2") : Edit2.SetFontSize 12 Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 12 Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() Edit1.SetWindowText "C:\Windows\System" Edit2.SetWindowText "C:\Windows\Profiles\Desktop\Test.txt" Text1.SetWindowText "" End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var strPath As String Var Ret As Long strPath = Space$(256) Ret = Api_PathRelativePathTo(strPath, Edit1.GetWindowText, FILE_ATTRIBUTE_DIRECTORY, Edit2.GetWindowText, FILE_ATTRIBUTE_NORMAL) Text1.SetWindowText strPath End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End