2010-05-14 29 views
6

¿Hay una manera fácil de traducir una ruta con variables de ruta del sistema a una ruta absoluta?¿Cómo obtener la ruta absoluta de la ruta con variables de ruta del sistema?

Así %ProgramFiles%\Internet Explorer\hmmapi.dll convierte C:\Program Files\Internet Explorer\hmmapi.dll

Me gustaría saber si hay una llamada a la API que puede hacer esto, o tengo que hacer esto de la manera difícil y detectar secuencias% ..% y reemplazarlos con los correspondientes ¿Variable ambiental?

Respuesta

12

Usted puede utilizar la función API de Windows ExpandEnvironmentStrings:

function ExpandEnvStr(const szInput: string): string; 
    const 
    MAXSIZE = 32768; 
    begin 
    SetLength(Result,MAXSIZE); 
    SetLength(Result,ExpandEnvironmentStrings(pchar(szInput), 
     @Result[1],length(Result)) - 1); 
    end; 
+0

Sí, ésa era la función que estaba buscando. Lo encontré yo mismo también, después de usar finalmente las palabras clave correctas en google. –

+4

ExpandEnvironmentStrings devuelve la longitud incluyendo el carácter nulo, por lo que debe restar 1 del resultado para devolver la cadena sin el terminador nulo. –

+0

Se agregó -1 hasta el final para arrastrar el trailing # 0 – Harriv

Cuestiones relacionadas