PDA

Ver la Versión Completa : problema al saber el directorio actual


soyhugo
31-01-2004, 23:24:14
Tengo un problema al obtener el directorio actual donde se encuentra el archivo ejecutado. yo uso el siguiente código. Pero el problema está cuando el archivo se ejecuta desde un icono de acceso directo. en inicio/probramas/mi programa/programa.exe
entonces, la cadena devuelta es c:\ cuando realmente el archivo está ubicado en c:\programas\mi_programa.

gracias.

function GetCurrentDirectory: String;
var
nBufferLength : DWORD;
lpBuffer : PChar;
begin
nBufferLength := MAX_PATH + 1;
GetMem( lpBuffer, nBufferLength );
try
if Windows.GetCurrentDirectory( nBufferLength, lpBuffer ) > 0 then
Result := lpBuffer;
finally
FreeMem( lpBuffer );
end;
end;

roman
01-02-2004, 00:16:40
Para hallar el directorio donde se encuentra tu aplicación es más fácil si usas:

ExtractFilePath(Application.ExeName)

// Saludos

delphi.com.ar
02-02-2004, 15:24:57
Creo que lo que te dice Román, es lo que estas buscando, de todos modos agrego:
Si quieres averiguar cual es el directorio activo en tu aplicación, ya lo tienes resuelto en SysUtils, con la función GetCurrentDir, que en Win32 no hace mas que utilizar la WinApi GetCurrentDirectory que aplicaste anteriormente.

Saludos!