Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

How To Get a Short Filename from a Long Filename

View products that this article applies to.


Under certain circumstances, it may be necessary to get the Short Filename equivalent of a file that has a Long Filename. The example below will allow you to select a file that has a Long Filename and return it's Short Filename using the GetShortPathName API Function call.

↑ Back to the top

More information

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

Step-by-Step Example

  1. Create a new Standard EXE project in Visual Basic. Form1 is created by default.
  2. Place a CommandButton on Form1.
  3. Place a Common Dialog control on the form.
  4. From the Insert menu, select Module to add a single code module to the project.
  5. Add the following code to Module1:
       Declare Function GetShortPathName Lib "kernel32" _
          Alias "GetShortPathNameA" (ByVal lpszLongPath As String, _
          ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
       Public Function GetShortName(ByVal sLongFileName As String) As String
           Dim lRetVal As Long, sShortPathName As String, iLen As Integer
           'Set up buffer area for API function call return
           sShortPathName = Space(255)
           iLen = Len(sShortPathName)
           'Call the function
           lRetVal = GetShortPathName(sLongFileName, sShortPathName, iLen)
           'Strip away unwanted characters.
           GetShortName = Left(sShortPathName, lRetVal)
       End Function
  6. Add the following code to Form1:
       Private Sub Command1_Click()
         Dim msg As String
         CommonDialog1.FileName = "*.*"
         msg = "Long File Name: " & CommonDialog1.filename & vbCrLf
         msg = msg & "Short File Name: " & GetShortName(CommonDialog1.filename)
         MsgBox msg
       End Sub
  7. Run the project by pressing the F5 key. Click on the Command button to show the Open dialog box. Navigate the Open dialog box and find a file that has a Long Filename. Select the file and click OK.
  8. The message box will display the Long File name along with its Short File name.

↑ Back to the top


For additional information, please see the following article in the Microsoft Knowledge Base:
154822 How To Get a Long Filename from a Short Filename

↑ Back to the top

Keywords: kbhowto, kbdocfix, KB175512

↑ Back to the top

Article Info
Article ID : 175512
Revision : 5
Created on : 3/11/2005
Published on : 3/11/2005
Exists online : False
Views : 414