dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Visual Basic
Expertise: Advanced
Nov 28, 2001

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Generate a Relative Path Between Folders


You can use a Shell Light Weight API to generate a relative path by using this code:
 
Private Declare Function PathRelativePathToW _
Lib "shlwapi.dll" (ByVal pszPath As Long, _
ByVal pszFrom As Long, ByVal dwAttrFrom As _
Long, ByVal pszTo As Long, ByVal dwAttrTo _
As Long) As Boolean
Private Function GetRelativePath( _
sRelativePath As String, ByVal sPathFrom _
As String, ByVal sPathTo As String) As _
Boolean
Dim bResult As Boolean
Const MAX_PATH As Long = 260
sRelativePath = Space(MAX_PATH)
' Set "dwAttr..." to vbDirectory for
' directories, 0 for files
bResult = PathRelativePathToW(StrPtr _
(sRelativePath), StrPtr(sPathFrom), _
vbDirectory, StrPtr(sPathTo), 0)
If bResult Then
sRelativePath = Left(sRelativePath, _
InStr(sRelativePath, vbNullChar) - 1)
Else
sRelativePath = ""
End If
GetRelativePath = bResult
End Function
Private Sub Command1_Click()
Dim sRelative As String
' txtFromPath should contain the directory
' path to go from, txtToPath should contain
' the file path to go to.
' txtRelativePath will contain the result
If GetRelativePath(sRelative, _
txtFromPath.Text, txtToPath.Text) Then
txtRelativePath.Text = sRelative
Else
txtRelativePath.Text = "Error"
End If
End Sub

PathRelativePathTo requires shlwapi.dll version 4.71 or higher, which ships with Internet Explorer 4. See http://msdn.microsoft.com/library/psdk/shellcc/shell/versions.htm for versioning details.
Phil Fresle
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date