devxlogo

Convert a Short Filename Into a Long Filename

Convert a Short Filename Into a Long Filename

You can use the Dir( ) function to return a long filename, but the return 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 with 32-bit versions of VB, without the assistance of APIs:

 Public Function GetLongFilename(ByVal _sShortName As String) As StringDim sLongName As StringDim sTemp As StringDim iSlashPos As Integer' Add  to short name to prevent Instr from failingsShortName = sShortName & ""' Start from 4 to ignore the "[Drive' Letter]:" charactersiSlashPos = InStr(4, sShortName, "")' Pull out each string between  character for conversionDo While iSlashPossTemp = Dir(Left$(sShortName, _iSlashPos - 1), vbNormal Or vbHidden _Or vbSystem Or vbDirectory)If sTemp = "" Then' Error 52 - Bad File Name or NumberGetLongFilename = ""Exit FunctionEnd IfsLongName = sLongName & "" & sTempiSlashPos = InStr(iSlashPos + 1, sShortName, "")Loop' Prefix with the drive letterGetLongFilename = Left$(sShortName, 2) & sLongNameEnd Function'From any place, add this lineGetLongFilename("C:PROGRA~1COMMON~1")

This function, as written, expects a standard fully qualified, drive-based filespec.

devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist