Help and Support
 

powered byLive Search

How To Get a Long Filename from a Short Filename

Article ID:154822
Last Review:July 1, 2004
Revision:4.1
This article was previously published under Q154822
On This Page

SUMMARY

The Dir() function can be used to return a long filename but it does not include path information. By parsing a given short path/filename into its constituent directories, you can use the Dir() function to build a long path/filename. This article demonstrates how to accomplish this behavior.

Back to the top

MORE INFORMATION

The following code example includes a function that will convert short filenames into their long filename equivalents and also includes a simple demonstration of the function's use.

Back to the top

Step-by-Step Example

1.Start Visual Basic. Form1 is created by default.
2.Place a Command button onto Form1.
3.From the Insert menu, select Module to add a single code module to the project.
4.Add the following code to Module1:
   Public Function GetLongFilename _
     (ByVal sShortName As String) _
     As String

     Dim sLongName As String
     Dim sTemp As String
     Dim iSlashPos As Integer

     'Add \ to short name to prevent Instr from failing
     sShortName = sShortName & "\"

     'Start from 4 to ignore the "[Drive Letter]:\" characters
     iSlashPos = InStr(4, sShortName, "\")

     'Pull out each string between \ character for conversion
     While iSlashPos
       sTemp = Dir(Left$(sShortName, iSlashPos - 1), _
         vbNormal + vbHidden +    vbSystem + vbDirectory)
       If sTemp = "" Then
         'Error 52 - Bad File Name or Number
         GetLongFilename = ""
         Exit Function
       End If
       sLongName = sLongName & "\" & sTemp
       iSlashPos = InStr(iSlashPos + 1, sShortName, "\")
     Wend

     'Prefix with the drive letter
     GetLongFilename = Left$(sShortName, 2) & sLongName

   End Function

					
5.Add the following to the Command1_Click event:
   Private Sub Command1_Click()

     'Assumes C:\Program Files\Common Files is a valid path
     Print GetLongFilename("C:\PROGRA~1\COMMON~1")

   End Sub

					
6.Choose Start from the Run menu, or press the F5 key to start.
7.Click the Command button.
If the path you have supplied is valid, the long equivalent will be printed on the form. If it is not valid, nothing will print, in which case you will need to supply a valid short filename in the Command1_Click event code.

Back to the top


APPLIES TO
Microsoft Visual Basic 5.0 Learning Edition
Microsoft Visual Basic 6.0 Learning Edition
Microsoft Visual Basic 5.0 Professional Edition
Microsoft Visual Basic 6.0 Professional Edition
Microsoft Visual Basic 5.0 Enterprise Edition
Microsoft Visual Basic 6.0 Enterprise Edition
Microsoft Visual Basic 4.0 Standard Edition
Microsoft Visual Basic 4.0 Professional Edition
Microsoft Visual Basic 4.0 32-Bit Enterprise Edition

Back to the top

Keywords: 
kbhowto KB154822

Back to the top

Article Translations

 

Other Support Options

  • Need More Help?
    Contact a Support professional by Email, Online or Phone.
  • Customer Service
    For non-technical assistance with product purchases, subscriptions, online services, events, training courses, corporate sales, piracy issues, and more.
  • Newsgroups
    Pose a question to other users. Discussion groups and Forums about specific Microsoft products, technologies, and services.