19 de agosto de 2016

Conversion de Rutas (Path) de largas a cortas y viceversa

Este ejemplo muestra como convertir una ruta larga (formato Windows) a una ruta corta (formato 8.3 MS-DOS) y como revertirlo, llevarla de formato de ruta corta a ruta larga.

*######################################################
*# Llevado de Visual Basic a Visual Foxpro por Int21
*######################################################

*#########################################################
*# Declaracion de las API'S
*#########################################################
DECLARE INTEGER GetShortPathName IN kernel32 ;
STRING @lpszLongPath , STRING @lpszShortPath, INTEGER @cchBuffer
DECLARE INTEGER GetLongPathName IN kernel32 ;
STRING @lpszShortPath, STRING @lpszLongPath, INTEGER @cchBuffer

*#########################################################
*# Convertir una Ruta Larga dentro del equivalente 8.3 de ruta corta
*#########################################################
LOCAL lLen, GetShortPath, sLongPath, La_Ruta
lLen = 0
GetShortPath = ""
sLongPath = "C:\Documents and Settings\Morfeus\Escritorio\Long__-__S1227648262002"
*#### Establecer el buffer para la llamada  a la API
GetShortPath = SPACE(1024)
*#### Llamada a la API, Retirar los Caracteres no deseados y devolver la Ruta
lLen = GetShortPathName(@sLongPath, @GetShortPath, LEN(GetShortPath))
La_Ruta = LEFT(GetShortPath, lLen)
WAIT WINDOWS La_Ruta

*#########################################################
*# Convertir una Ruta Corta en su equivalente de Ruta Larga
*#########################################################
LOCAL lLen, sShortPath, LaRuta
lLen = 0
sShortPath = "C:\Docume~1\Morfeus\Escrit~1\Long__~1"
LaRuta = ""
*#### Establecer el Buffe rpara la llamada a la API
GetLongPath = SPACE(1024)
*#### Llamada a la Api, Retirar los caracteres no deseados y devolver la Ruta
lLen = GetLongPathName(@sShortPath, @GetLongPath, LEN(GetLongPath))
LaRuta = LEFT(GetLongPath, lLen)
WAIT WINDOWS LaRuta

No hay comentarios. :

Publicar un comentario