|
|
Title | Change between long and short file names |
Keywords | file name, long file name, short file name, DOS name |
Categories | Windows, Files and Directories |
|
|
To convert from long to short file names, use the GetShortPathName API function. Note that this function only works if the file actually exists.
|
|
' Return the short file name for a long file name.
Public Function ShortFileName(ByVal long_name As String) As _
String
Dim length As Long
Dim short_name As String
short_name = Space$(1024)
length = GetShortPathName( _
long_name, short_name, _
Len(short_name))
ShortFileName = Left$(short_name, length)
End Function
|
|
To convert from short to long file names, break the short name into directory pieces. Use Dir$ to get the long name for each piece.
|
|
Public Function LongFileName(ByVal short_name As String) As _
String
Dim pos As Integer
Dim result As String
Dim long_name As String
' Start after the drive letter if any.
If Mid$(short_name, 2, 1) = ":" Then
result = Left$(short_name, 2)
pos = 3
Else
result = ""
pos = 1
End If
' Consider each section in the file name.
Do While pos > 0
' Find the next \.
pos = InStr(pos + 1, short_name, "\")
' Get the next piece of the path.
If pos = 0 Then
long_name = Dir$(short_name, vbNormal + _
vbHidden + vbSystem + vbDirectory)
Else
long_name = Dir$(Left$(short_name, pos - 1), _
vbNormal + vbHidden + vbSystem + _
vbDirectory)
End If
result = result & "\" & long_name
Loop
LongFileName = result
End Function
|
|
|
|
|
|