Problemas para acortar rutas largas

Iniciado por oskarrr, 15 Junio 2013, 01:44 AM

0 Miembros y 1 Visitante están viendo este tema.

oskarrr

Hola. Estoy usando el siguiente código para acortar rutas largas tipo C:\Archivos de Programa y convertirlas en C:\Archiv~1 para usar comandos en ventana de comandos sin errores.

Código:
Código (vb) [Seleccionar]

Public Function AcortarPath(Ruta As String) As String
Dim sBuf As String * 260
Dim i As Long

i = GetShortPathName(Ruta, sBuf, Len(sBuf))
AcortarPath = Left$(sBuf, i)
End Function

El código funciona perfectamente para acortar rutas tipo "C:\Archivos de Programa\Mi programa y mi ruta con espacios", pero no hace nada cuando intento convertir rutas en red tipo "\\mi disco en red\mi carpeta con nombre largo y espacios". ¿Alguna ayuda?

antraXactive

¿Sabes que si pones entrecomillado las rutas puedes usarlas en la línea de comandos? Creo que la necesidad de usar las rutas acortadas no viene desde versiones antiguas de Widnows, de hecho seguramente esas versiones no admitan comandos con rutas de red.

Código (php) [Seleccionar]
C:\Users\Yop>copy "\\localhost\Nueva carpeta\Ejemplo de prueba\mi vida es bonita.txt" C:\Users\Yop\sadfsdf.txt
       1 archivo(s) copiado(s).

oskarrr

mmm, no sabía lo de las comillas. Me daba problemas con las rutas con espacios a la hora de llamar shell en vb6 y por eso comencé a usar la función para acortar las rutas, y funciona perfecto siempre que no sean rutas de red. Tendré que hacer pruebas con las comillas a ver que tal.

El programa lo estoy usando con versiones de windows en XP, Vista, Windows 7... Supongo que cuando te refieres a versiones antiguas de windows te refieres a versiones por lo menos anteriores a XP.

Saludos.