Contributor: KEITH ANDERSON


> GetDiskFreeSpace(lpszRootPathName,
>                        lpSectorsPerCluster,
>                        lpBytesPerSector,
>                        lpFreeClusters,
>                        lpClusters);

The help file for this is:

BOOL GetDiskFreeSpace(

    LPCTSTR  lpRootPathName,    // address of root path
    LPDWORD  lpSectorsPerCluster,       // address of sectors per cluster
    LPDWORD  lpBytesPerSector,  // address of bytes per sector
    LPDWORD  lpNumberOfFreeClusters,    // address of number of free clusters
    LPDWORD  lpTotalNumberOfClusters    // address of total number of clusters
   );

Therefore, define the following variables:

Var Path:String;
      Sectors,Bytes,free,total:DWORD;
      FreeK,TotalK :Integer;

Assign the root directory of some drive to PATH.  For example,
if you want to get the information for drive C:, then
  PATH:='C:\';
if you want to get the information for volume SysVol on
server MainServer, then
  PATH:='\\MainServer\SysVol\';

The code to retrieve the total Kilobytes and free Kilobytes of the
drive goes as follows:

if getdiskfreespace(pchar(Path),sects,bytes,free,total) then
begin
   totalK:=trunc(((sects*bytes)/1024)*total);
   freeK:=trunc(((sects*bytes)/1024)*free);
end else
begin
  // error-- no access, drive doesn't provide this info, or drive doesn't exist
  totalK:=0;
  freeK:=0;
end;

Use the same methodology to use the other similar API functions.
I hope that helped.