Модуль Dir Справочный лист

Этот модуль включает в себя процедуры для чтения содержимого каталога.

Постоянные

Этот раздел пуст.

Типы

Rec = RECORD   eod: BOOLEAN;  

(* TRUE, если достигнут конец каталога *)

  isDir: BOOLEAN;  

(* TRUE, если текущая запись является каталогом *)

  res: INTEGER;  

(* Результат. 0 означает отсутствие ошибки. *)

  name: ARRAY 512 OF CHAR;  

(* Имя файла или каталога *)

  path: ARRAY 1024 OF CHAR  

(* Путь, который был задан *)

END
;

Запись бегунка по каталогу. Содержит данные одного файла или входа в каталог при чтении содержимого каталога.

Переменные

Этот раздел пуст.

Процедуры

PROCEDURE Close (VAR r: Rec);

Закрыть каталог.

ДОЛЖЕН БЫТЬ ВЫЗВАН, чтобы избежать утечки потоков каталога C.

!TODO добавить это в финализацию.

PROCEDURE FileExists (name: ARRAY OF CHAR): BOOLEAN;

Возвращает TRUE, если файл с данным именем существует.

PROCEDURE First (VAR r: Rec; path: ARRAY OF CHAR);

Инициирует чтение каталога с заданным путем.

При вызове First в бегунок (по каталогу) r записываются данные о первой записи каталога по адресу path. Проверьте, что r.res = 0, чтобы убедиться, что вызов First прошёл успешно. Для перехода к следующей записи используйте Next с тем же r. Проверяйте r.eod, чтобы узнать, когда чтение каталога пора прекратить.

PROCEDURE GetCwd (VAR dir: ARRAY OF CHAR);

Возвращает полный путь к текущему рабочему каталогу.

PROCEDURE IsDir (name: ARRAY OF CHAR): BOOLEAN;

Возвращает TRUE, если данное имя файла относится к каталогу.

PROCEDURE Next (VAR r: Rec);

Читает следующую запись каталога после той, на которую ссылается r.

Сначала вызовите First(r, path) с тем же r и путем к каталогу. Затем используйте r.eod и Next(r) для перебора записей.

PROCEDURE Rewind (VAR r: Rec);

Перематывает бегунок так, что чтение записей в каталоге начинается с самого начала.