Convertir Ruta larga en Ruta corta (Compatible con MSDOS) en Visual Foxpro
Sucede que a veces por cuestiones de compatibilidad se requiere convertir una ruta larga (c:\mis carpetas\carpetas personales\trabajo de mecanica.xls) en una ruta corta (C:\miscar~1\carpet~1\trabaj~1.xls), bueno alli entra esta función del Maestro Jorgue Mota que nos hace el trabajo a través de una API.
Function GetDosFileName(lcfile As String) As String
**http://fox.desdeguate.com/?p=77
**Autor: Jorge Mota
**Devuelve la ruta corta (DOS) de una ruta o un archivo.
Declare Long GetShortPathName In "kernel32" String lpszLongPath,;
String lpszShortPath, Long lBuffer
lcFileName=Replicate(Chr(0),254)
lnTotal=GetShortPathName(lcfile, @lcFileName, Len(lcFileName))
Return Substr(lcFileName,1,lnTotal)
Endfunc
Ejemplos de uso:
Archivo:
?lcfile = GetDosFileName([C:\Juan Pérez y Pérez.xls])
Directorio:
lcDir = GetDosFileName([C:\Archivos de Programa\])


Abril 12th, 2009 at 3:04 AM
Exelente mil gracias…
vale un 10.