Back


Lennie's Weekly Tip: Getting the Current Working Directory

11 May 2000 Ref. 22


You can now use the GetCurrentDirectory Windows API function to retrieve the current directory for the current process.

Declaration:

function GetCurrentDirectory(nBufferLength: Cardinal; lpBuffer: PChar);

Parameters
  nBufferLength
  Specifies the length, in characters, of the buffer for the current directory string. The buffer length must include room for a terminating null character.

  pBuffer
   Points to the buffer for the current directory string. This null-terminated string specifies the absolute path to the current directory.

Return Values
=============

If the function succeeds, the return value specifies the number of characters written to the buffer, not including the terminating null character.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

If the buffer pointed to by lpBuffer is not large enough, the return value specifies the required size of the buffer, including the number of bytes necessary for a terminating null character.

For Example:
============

Place a Label (TLabel) and a Button(TButton) on a Form(TForm), and write the following code inside the Button's OnClick event-handler.

var
 TempStr : array [0..255] of char; {Declare the required buffer}

begin
  GetCurrentDirectory(SizeOf(TempStr), TempStr);
  Label1.Caption := TempStr;
end;

When you run this application (pressing F9) and click on the Button, then the Label will respond with the current path of the current working directory.

For more information read the Microsoft® Win32® Programmer's Reference available with Delphi.


Back