[Overview][Constants][Types][Procedures and functions][Index] | Reference for unit 'BaseUnix' (#rtl)

# FpOpendir

Open a directory for reading

## Declaration

Source position: bunxh.inc line 71

`function FpOpendir(`
`dirname: pChar`
`):pDir; function FpOpendir(`
`const dirname: RawByteString`
`):pDir; function FpOpendir(`
`dirname: ShortString`
`):pDir;`

## Description

FpOpenDir opens the directory DirName, and returns a pdir pointer to a Dir record, which can be used to read the directory structure. If the directory cannot be opened, nil is returned.

## Errors

Extended error information can be retrieved using fpGetErrno.

## See also

FpCloseDir |  | Close directory file descriptor
FpReadDir |  | Read entry from directory

## Example

    Program Example35;

    { Program to demonstrate the
      OpenDir,ReadDir, SeekDir and TellDir functions. }

    Uses BaseUnix;

    Var TheDir : PDir;
        ADirent : PDirent;
        Entry : Longint;

    begin
      TheDir:=fpOpenDir('./.');
      Repeat
    //    Entry:=fpTellDir(TheDir);
        ADirent:=fpReadDir (TheDir^);
        If ADirent<>Nil then
          With ADirent^ do
            begin
            Writeln ('Entry No : ',Entry);
            Writeln ('Inode    : ',d_fileno);
    //        Writeln ('Offset   : ',d_off);
            Writeln ('Reclen   : ',d_reclen);
            Writeln ('Name     : ',pchar(@d_name[0]));
            end;
      Until ADirent=Nil;
      Repeat
        Write ('Entry No. you would like to see again (-1 to stop): ');
        ReadLn (Entry);
        If Entry<>-1 then
          begin
    //      fpSeekDir (TheDir,Entry);               // not implemented for various platforms
          ADirent:=fpReadDir (TheDir^);
          If ADirent<>Nil then
            With ADirent^ do
              begin
              Writeln ('Entry No : ',Entry);
              Writeln ('Inode    : ',d_fileno);
    //          Writeln ('Offset   : ',off);
              Writeln ('Reclen   : ',d_reclen);
              Writeln ('Name     : ',pchar(@d_name[0]));
              end;
        end;
      Until Entry=-1;
      fpCloseDir (TheDir^);
    end.