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 : GetShortName
Autor/es:
Juan M Afán de Ribera
Pregunta : ¿Cómo puedo obtener el nombre y la ruta corta para una ruta que puede tener más de 8 caracteres por nombre, es decir la ruta del tipo que devolvía el MS-DOS? Hay algunas funciones o métodos de Access o Visual Basic que parecen tener problemas con los nombres largos del tipo

C:\Archivos de programa\Microsoft Office\Office\MSACCESS.EXE

y en cambio, esperan un nombre del tipo

C:\ARCHIV~1\MICROS~1\OFFICE\MSACCESS.EXE
Respuesta : Puedes utilizar la función GetShortName para ese propósito. Esta función devolverá el nombre corto para el nombre y ruta que se le pasen en su argumento LongPath.
'---------------------------------------------------------
'
' GetShortName
'
' 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 GetShortPathName Lib "kernel32" _
                Alias "GetShortPathNameA" _
                (ByVal lpszLongPath As String, _
                ByVal lpszShortPath As String, _
                ByVal lBuffer As Long) As Long

Function GetShortName(LongPath As String) As String
Dim LenShortName As Long
Dim buffer As String * 1000

    LenShortName = GetShortPathName(LongPath, _
                          buffer, Len(LongPath))
    If LenShortName Then
        GetShortName = Left$(buffer, LenShortName)
    End If

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

Ejemplos:

 

Temas relacionados:

GetLongName

 

Última actualización: 26/12/2004