Access & VBA FAQ
| | | |
Indice de temas
Tablas
Consultas
Formularios
Informes
Macros
Módulos
Base de datos
Miscelánea
API
Utilidades
Problemas
Cadenas
Fechas
Todos los temas
API : GetLongName
Autor/es:
Juan M Afán de Ribera
Pregunta : ¿Cómo puedo obtener la forma larga para el nombre y ruta de un archivo? A veces obtengo un nombre de archivo de esta forma:

C:\ARCHIV~1\MICROS~1\OFFICE\MSACCESS.EXE

y yo lo que quiero es obtener esto otro:

C:\Archivos de programa\Microsoft Office\Office\MSACCESS.EXE
Respuesta : Puedes utilizar la función GetLongName que devolverá el nombre largo para una ruta que le pases en su argumento ShortName.

Pega este código en un módulo estandar:
'---------------------------------------------------------
'
' GetLongName
'
' Código escrito originalmente por Juan M Afán de Ribera.
' Estás autorizado a utilizarlo dentro de una aplicación
' siempre que esta nota de autor permanezca inalterada.
' En el caso de querer publicarlo en una página Web,
' por favor, contactar con el autor en
'
'     accessvbafaq@ya.com
'
' Este código se brinda por cortesía de
' Juan M. Afán de Ribera
'
Private Declare Function GetLongPathName Lib "kernel32" _
                Alias "GetLongPathNameA" _
                (ByVal lpszShortPath As String, _
                ByVal lpszLongPath As String, _
                ByVal cchBuffer As Long) As Long

Function GetLongName(ShortPath As String) As String
Dim LenLongName As Long
Dim buffer As String * 1000

    LenLongName = GetLongPathName(ShortPath, _
                          buffer, Len(buffer))
    If LenLongName Then
        GetLongName = Left$(buffer, LenLongName)
    End If

End Function
'---------------------------------------------------------

Ejemplos:

 

Temas relacionados:

GetShortName

 

Última actualización: 26/12/2004