5 de febrero de 2010

Un reemplazo para FULLPATH()

Artículo original: A Replacement for FULLPATH()
http://doughennig.blogspot.com/2010/02/replacement-for-fullpath.html)
Autor: Doug Hennig
Traductor: Luis María Guayán

¿Está tan molesto como yo de que FULLPATH() devuelve la ruta completa de un archivo en mayúsculas? Esto hace un poco difícil, respetar las mayúsculas y minúsculas en un nombre de archivo introducido por el usuario. Afortunadamente, la función GetFullPathName de la API de Windows no cambia las mayúsculas y minúsculas. Aquí hay una pequeña función que recibe un nombre de archivo y devuelve la ruta completa usando la función de la API:
LPARAMETERS tcName
LOCAL lcBuffer1, ;
  lcBuffer2, ;
  lnLen

#DEFINE MAX_PATH 260

DECLARE LONG GetFullPathName IN Win32API ;
  STRING lpFileName, LONG nBufferLength, STRING @lpBuffer, ;
  STRING @lpFilePart

STORE SPACE(MAX_PATH) TO lcBuffer1, lcBuffer2
lnLen = GetFullPathName(tcName, MAX_PATH, @lcBuffer1, @lcBuffer2)
RETURN LEFT(lcBuffer1, lnLen)