Функции группы файловых манипуляций ARexx-a являются аналогами соответствующих функций ОС. Например, удаление файла можно произвести, не пользуясь ARexx-функцией DELETE(), а вызвав соответствующую ОС-функцию:
ADDRESS command DELETE filename
Однако использование ARexx-функций более удобно хотя бы потому, что возвращаемое ими значение может быть немедленно использовано для проверки результата работы заданной функции. Если в качестве параметра функций задается неполный маршрут, то отсчет производится от текущего каталога.
DELETE()res = DELETE(<имя>)
Возвращается булевское значение TRUE, если операция удаления заданного "именем" файла или каталога прошла успешно, либо FALSE в противном случае.
EXISTS()res = EXISTS(<имя>)
Возвращается булевское значение TRUE, если файл или каталог с заданным "именем" существует, в противном случае возвращается FALSE. При проверке существования объекта на отсутствующем томе вы, как правило, получите риквестер с запросом "Вставьте диск..."; если такая ситуация нежелательна, следует предварительно вызвать функцию PRAGMA ('W', 'N'). Вызов же PRAGMA('D', <маршрут>) изменит текущий каталог на указанный параметром "маршрут".
MAKEDIR()res = MAKEDIR(<имя>)
Функция создает каталог с заданным "именем" и в случае успеха возвращает TRUE. В случае ОС 1.3 TRUE возвращается также, если заданный каталог уже существует на диске, в более старших версиях ОС при этом возвращается FALSE.
RENAME()res = RENAME(<старое_имя>,<новое_имя>)
Функция переименовывает файл в соответствии с достаточно очевидными параметрами. Возвращается булевское значение TRUE, если операция переименования прошла успешно, либо FALSE в противном случае.
STATEF()res = STATEF(<имя>)
Функция возвращает строку, содержащую информацию о файле (каталоге) с заданным "именем". Формат полученной строки:
FILE | DIR <длина> <блоки> <признаки> <дни> <минуты> <отсчет> <комментарий>
где:
- длина - длина файла в байтах;
- блоки - число блокое (секторов) в файле;
- признаки - признаки защиты файла (каталога) в формате HSPARWED. Если некоторый признак отсутствует, то на его месте стоит тире;
- дни - число полных суток, прошедших с 1/01/78 до момента создания/модификации файла (каталога);
- минуты - число полных минут, прошедших с полуночи до момента создания/модификации файла (каталога);
- отсчет - число системных временных интервалов (по 20ms), прошедших с начала последней минуты;
- комментарий - содержимое комментария к файлу.
Пример:
say STATEF('C:ed') ==> FILE 5696 12 --RWED 6375 1209 2100