Операции для работы с файловой системой

В Pascal существует несколько процедур для работы с файловой структурой.

Процедура Rename служит для переименования файла или каталога. Синтаксис процедуры следующий:

Rename(файловая_переменная, новое_имя)

Второй параметр задается строковым выражением и указывает новое внешнее имя файла или каталога.

Для уничтожения файла в Pascal используется процедура Erase, единственным параметром которой является внутреннее имя файла.

Erase(файловая_переменная)

Эти две процедуры работают только с закрытым файла, но предварительно с помощью оператора Assign файловая переменная (тип которой неважен) должна быть связана с внешним именем файла (или каталога, если переименовывается каталог).

Четыре процедуры (ChDir, MkDir, RmDir и GetDir) в Pascal обеспечивают работу с каталогами.

Первые три процедуры используют один и тот же синтаксис:

ChDir(каталог)
MkDir(каталог)
RmDir(каталог)

Во всех трех случаях параметр задается строковым выражением и указывает имя каталога в интерпретации MS DOS.

Процедура ChDir изменяет текущий каталог на указанный, процедура MkDir создает новый каталог с указанным именем, а процедура RmDir уничтожает каталог при условии, что он пустой.

Процедура GetDir позволяет определить имя текущего каталога на указанном диске. Синтаксис процедуры таков:

GetDir(диск, каталог)

Здесь параметр диск представляет собой выражение типа Word, задающее номер диска (0 – активный диск, 1 – диск A, 2 – диск B и т. д.). Параметр каталог – это переменная типа string, которая служит для возврата пути к текущему каталогу на диске, номер которого указан в качестве первого параметра процедуры. Пример использования описанных выше процедур представлен в программе ниже.

var
  f: text;
  s: string;
 
begin
  Assign(f,'a.txt'); // связываемся с файлом
  Rename(f,'b.txt'); // переименовываем его
 
  MkDir('foto'); // создаем каталог
  ChDir('foto'); // переходим в него
  GetDir(0,s);  // полное имя текущего каталога записываем в s
  writeln(s);
 
  ChDir('..'); // поднимаемся на уровень вверх
  rewrite(f); // открываем файл на запись
  write(f,s); // записываем туда строку
  close(f);
  readln; // пока не нажата клавиша, вы можете видеть каталог
  RmDir('foto'); // удаляем каталог
 
end.