Search Tools Links Login

Converting long file names

Posted: 2002-06-01
By: ArchiveBot
Viewed: 74

Filed Under:

VB6 Code Cache

No attachments for this post

VB4's commands for dealing with file names (such as KILL, MKDIR, and FILECOPY) support long file names without programmer interaction. A number of the Win95 API functions will return only the short name, and you'll notice a number of short file name entries if you're digging through the registration database. Therefore, occasionally you'll need to convert a short file name into a long file name.
This function lets you pass a long file name with no ill effects. The file must exist for the conversion to succeed. Because this routine uses Dir$ and "walks" the path name to do its work, it will not impress you with its speed:

Original Author: VB Pro


Function sLongName(sShortName As String) As String
'sShortName - the provided file name,
'fully qualified, this would usually be
'a short file name, but can be a long file name
'or any combination of long / short parts
'RETURNS: the complete long file name,
'or "" if an error occurs
'an error would usually indicate
'that the file doesn't exist
Dim sTemp As String
Dim sNew As String
Dim iHasBS As Integer
Dim iBS As Integer
If Len(sShortName) = 0 Then Exit Function
sTemp = sShortName
If Right$(sTemp, 1) = "" Then
sTemp = Left$(sTemp, Len(sTemp) - 1)
iHasBS = True
End If
On Error GoTo MSGLFNnofile
If InStr(sTemp, "") Then
sNew = ""
Do While InStr(sTemp, "")
If Len(sNew) Then
sNew = Dir$(sTemp, 54) & "" & sNew
sNew = Dir$(sTemp, 54)
If sNew = "" Then
sLongName = sShortName
Exit Function
End If
End If
On Error Resume Next
For iBS = Len(sTemp) To 1 Step -1
If ("" = Mid$(sTemp, iBS, 1)) Then
'found it
Exit For
End If
Next iBS
sTemp = Left$(sTemp, iBS - 1)
sNew = sTemp & "" & sNew
sNew = Dir$(sTemp, 54)
End If
If iHasBS Then
sNew = sNew & ""
End If
sLongName = sNew
Exit Function
sNew = ""
Resume MSGLFNresume
End Function

Comments on this post

No comments have been added for this post.

You must be logged in to make a comment.