Nombre Corto de directorios

22/02/2007 - 09:12 por Bingen | Informe spam
Hola a Todos:

¿ Sabéis como puedo obtener el nombre corto de un directorio ?, es decir
algo como c:\mis~1\asdssf

Muchas gracias

Preguntas similare

Leer las respuestas

#1 Bingen
22/02/2007 - 10:16 | Informe spam
Estoy intentando con:

<System.Runtime.InteropServices.DllImport("kernel32.dll", _
EntryPoint:="GetShortPathName")> _
Public Function GetShortPathName(ByVal lpszLongPath As String,
ByVal lpszShortPath As String, ByVal cchBuffer As Int32) As Int32

End Function



pero me devuelve una cadena vacía al llamarla :

GetShortPathName(sNombreLargo, sNombreCorto, 255)




Bingen escribió:
Hola a Todos:

¿ Sabéis como puedo obtener el nombre corto de un directorio ?, es decir
algo como c:\mis~1\asdssf

Muchas gracias


Respuesta Responder a este mensaje
#2 SoftJaén
22/02/2007 - 16:07 | Informe spam
"Bingen" escribió:

Estoy intentando con:

<System.Runtime.InteropServices.DllImport("kernel32.dll", _
EntryPoint:="GetShortPathName")> _
Public Function GetShortPathName(ByVal lpszLongPath As String, ByVal
lpszShortPath As String, ByVal cchBuffer As Int32) As Int32

End Function

pero me devuelve una cadena vacía al llamarla :

GetShortPathName(sNombreLargo, sNombreCorto, 255)



Hola:

Como no has comentado nada, entiendo que la variable «sNombreCorto» la
tienes declarada como «String». Si es así, cambia la declaración, tanto de
la variable como de la función API «GetShortPathName», por un objeto de la
clase «StringBuilder», ya que a la función API le tienes que pasar un buffer
en el cual se rellenará el nombre corto del directorio:

<System.Runtime.InteropServices.DllImport("kernel32.dll", _
EntryPoint:="GetShortPathName")> _
Public Function GetShortPathName( _
ByVal lpszLongPath As String, _
ByVal lpszShortPath As System.Text.StringBuilder, _
ByVal cchBuffer As Int32) As Int32

End Function

A la función la llamarías de la siguiente manera:

Dim path As String = "C:\Archivos de programa"

Dim shortPath As New System.Text.StringBuilder(260)

Dim lng As Int32 = GetShortPathName(path, shortPath, 260)

MessageBox.Show(shortPath.ToString)

Nota: 260 es el valor de la constante MAX_PATH.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida