Axiom Справочник языка

14 · Файловая система

Операции с файлами и каталогами

Каталоги и файлы меняются не сами по себе: их создают, копируют, переносят, переименовывают и удаляют, а текущий каталог задаёт, от какой точки отсчитываются относительные пути. Для этих действий служат MAKEDIR, DELETEFILE, COPYFILE, MOVEFILE, RENAMEFILE, DELETEDIR, DELETEDIRRECURSIVE, COPYDIR, MOVEDIR и RENAMEDIR, а CURRENTDIR, CHANGEDIR, DIRSIZE, FREESPACE, TOTALFREESPACE, TOTALSPACE, ISREADONLY, ISHIDDEN, DRIVENAME, DRIVEFORMAT, DRIVETYPE, MAKETEMPFILE и MAKETEMPDIR сообщают состояние объектов и диска либо готовят временное место.

Общие условия работы

Страница объединяет отдельные встроенные функции MAKEDIR, DELETEFILE, COPYFILE, MOVEFILE, RENAMEFILE, DELETEDIR, DELETEDIRRECURSIVE, COPYDIR, MOVEDIR, RENAMEDIR, CURRENTDIR, CHANGEDIR, DIRSIZE, FREESPACE, TOTALFREESPACE, TOTALSPACE, ISREADONLY, ISHIDDEN, DRIVENAME, DRIVEFORMAT, DRIVETYPE, MAKETEMPFILE, MAKETEMPDIR; общей конструкции для всей группы нет, поэтому каждый блок синтаксиса относится к указанной функции.

Пути подчиняются общим правилам файловых операций. Они доступны в консольной программе и в IDE без оператора SCREEN; относительные пути разрешаются от CURRENTDIR() текущего запуска, а перед разрешением пути раскрываются переменные окружения. Нулевой символ в пути недопустим. Создание файла не создаёт родительский каталог; сначала вызовите MAKEDIR, если он нужен.

MAKEDIR

MAKEDIR создаёт каталог и недостающие родительские каталоги. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

MAKEDIR(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к каталогу.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Уже существующий каталог считается успешным результатом TRUE.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь недопустим, занят обычным файлом или создание каталога запрещено правами доступа либо не удалось файловой системе.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT MAKEDIR(COMBINEPATH(folder, "a/b"))
PRINT DIREXISTS(COMBINEPATH(folder, "a/b"))
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
TRUE

DELETEFILE

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

Синтаксис

DELETEFILE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к файлу.

Результат и правила работы

Результат имеет тип BOOLEAN. Если файл отсутствует, функция возвращает FALSE; успешное удаление даёт TRUE.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить или существующий файл нельзя удалить. Отсутствующий файл даёт FALSE.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT DELETEFILE(path)
PRINT DELETEFILE(path)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
FALSE

COPYFILE

Вызов COPYFILE копирует содержимое существующего файла в другой файл. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

COPYFILE(<источник>, <назначение>)
COPYFILE(<источник>, <назначение>, <замена>)

Аргументы

<источник> имеет тип STRING. Строка источника задаёт существующий файл для переноса либо копирования.

<назначение> имеет тип STRING. Строка назначения задаёт полный путь файла назначения, включая его имя.

<замена> имеет тип BOOLEAN. Логическое значение TRUE разрешает замену существующих файлов; FALSE запрещает её. Без этого аргумента действует FALSE.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Источник должен существовать. Родительский каталог назначения автоматически не создаётся. При существующем назначении без TRUE в аргументе замены возникает ошибка.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если источник отсутствует, родитель назначения отсутствует, назначение уже существует без разрешения замены или копирование запрещено либо не удалось.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT COPYFILE(path, COMBINEPATH(folder, "copy.txt"))
PRINT READFILE(COMBINEPATH(folder, "copy.txt"))
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
AB

MOVEFILE

MOVEFILE переносит существующий файл по новому пути. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

MOVEFILE(<источник>, <назначение>)
MOVEFILE(<источник>, <назначение>, <замена>)

Аргументы

<источник> имеет тип STRING. Строка источника задаёт существующий файл для переноса либо копирования.

<назначение> имеет тип STRING. Строка назначения задаёт полный путь файла назначения, включая его имя.

<замена> имеет тип BOOLEAN. Логическое значение TRUE разрешает замену существующих файлов; FALSE запрещает её. Без этого аргумента действует FALSE.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Источник должен существовать. Родительский каталог назначения автоматически не создаётся. При существующем назначении без TRUE в аргументе замены возникает ошибка.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если источник отсутствует, родитель назначения отсутствует, назначение уже существует без разрешения замены или перенос запрещён либо не удался.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT MOVEFILE(path, COMBINEPATH(folder, "moved.txt"))
PRINT FILEEXISTS(path)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
FALSE

RENAMEFILE

Функция RENAMEFILE меняет имя файла в его текущем каталоге. Допустимы как путь файловой системы, так и строковые части пути.

Синтаксис

RENAMEFILE(<путь>, <новое имя>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к файлу.

<новое имя> имеет тип STRING. Строка нового имени задаёт только имя без пути; пустое имя, . и .. недопустимы. Родительский каталог сохраняется.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Исходный объект должен существовать. Меняется только имя в том же каталоге; существующее назначение не заменяется.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если источник отсутствует, новое имя не является простым именем, назначение уже существует или переименование недоступно.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT RENAMEFILE(path, "renamed.txt")
PRINT FILEEXISTS(COMBINEPATH(folder, "renamed.txt"))
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
TRUE

DELETEDIR

DELETEDIR удаляет пустой каталог. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

DELETEDIR(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к каталогу.

Результат и правила работы

Результат имеет тип BOOLEAN. Если каталог отсутствует, функция возвращает FALSE. Непустой каталог не удаляется и вызывает ошибку.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, каталог не пуст или удаление существующего каталога недоступно. Отсутствующий каталог даёт FALSE.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM child AS STRING = COMBINEPATH(folder, "child")
MAKEDIR(child)
PRINT DELETEDIR(child)
PRINT DELETEDIR(child)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
FALSE

DELETEDIRRECURSIVE

Вызов DELETEDIRRECURSIVE удаляет каталог со всем его содержимым. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

DELETEDIRRECURSIVE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к каталогу.

Результат и правила работы

Результат имеет тип BOOLEAN. Если каталог отсутствует, функция возвращает FALSE. При успехе удаляется всё содержимое, включая вложенные каталоги.

Удаление дерева не является атомарным. При ошибке уже удалённая часть не восстанавливается; MB3007 не означает, что содержимое каталога осталось неизменным.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить или удаление существующего дерева недоступно либо не удалось. Отсутствующий каталог даёт FALSE.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM child AS STRING = COMBINEPATH(folder, "child")
MAKEDIR(child)
WRITEFILE(COMBINEPATH(child, "x.txt"), "x")
PRINT DELETEDIRRECURSIVE(child)
PRINT DELETEDIRRECURSIVE(child)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
FALSE

COPYDIR

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

Синтаксис

COPYDIR(<источник>, <назначение>)
COPYDIR(<источник>, <назначение>, <замена>)

Аргументы

<источник> имеет тип STRING. Строка источника задаёт существующий каталог для переноса либо копирования.

<назначение> имеет тип STRING. Строка назначения задаёт полный путь каталога назначения, включая его имя.

<замена> имеет тип BOOLEAN. Логическое значение TRUE разрешает замену существующих файлов; FALSE запрещает её. Без этого аргумента действует FALSE.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Создаются каталог назначения и вложенные каталоги. Вложенные ссылки источника пропускаются; ссылки назначения отклоняются. Назначение не может совпадать с источником или находиться внутри него. Без TRUE существующий файл назначения не заменяется.

Копирование не является атомарной операцией. Если ошибка возникла после копирования части файлов, уже записанные файлы и созданные каталоги назначения сохраняются; автоматического отката нет. При остановке программы дальнейшие элементы дерева не копируются, но уже скопированная часть также остаётся. Между элементами проверяется остановка; начатый системный вызов копирования отдельного файла может завершиться до её обработки.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если источник отсутствует, назначение совпадает с источником или лежит внутри него, вложенное назначение является ссылкой, файл назначения уже существует без разрешения замены либо копирование недоступно.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM child AS STRING = COMBINEPATH(folder, "child")
MAKEDIR(child)
WRITEFILE(COMBINEPATH(child, "x.txt"), "X")
PRINT COPYDIR(child, COMBINEPATH(folder, "copy"))
PRINT READFILE(COMBINEPATH(folder, "copy/x.txt"))
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
X

MOVEDIR

Функция MOVEDIR переносит каталог по новому пути. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

MOVEDIR(<источник>, <назначение>)

Аргументы

<источник> имеет тип STRING. Строка источника задаёт существующий каталог для переноса либо копирования.

<назначение> имеет тип STRING. Строка назначения задаёт полный путь каталога назначения, включая его имя.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Каталог источника должен существовать. Назначение не должно уже существовать; родитель назначения требуется заранее. Форма с аргументом замены не поддерживается.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если источник отсутствует, назначение уже существует, родитель назначения отсутствует или файловая система не допускает такой перенос.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM child AS STRING = COMBINEPATH(folder, "child")
MAKEDIR(child)
PRINT MOVEDIR(child, COMBINEPATH(folder, "moved"))
PRINT DIREXISTS(child)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
FALSE

RENAMEDIR

RENAMEDIR меняет имя каталога внутри его родительского каталога. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

RENAMEDIR(<путь>, <новое имя>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к каталогу.

<новое имя> имеет тип STRING. Строка нового имени задаёт только имя без пути; пустое имя, . и .. недопустимы. Родительский каталог сохраняется.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Исходный объект должен существовать. Меняется только имя в том же каталоге; существующее назначение не заменяется.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если источник отсутствует, новое имя не является простым именем, назначение уже существует или переименование недоступно.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM child AS STRING = COMBINEPATH(folder, "child")
MAKEDIR(child)
PRINT RENAMEDIR(child, "renamed")
PRINT DIREXISTS(COMBINEPATH(folder, "renamed"))
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
TRUE

CURRENTDIR

Вызов CURRENTDIR возвращает полный путь рабочей папки текущего запуска. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

CURRENTDIR()

Аргументы

Аргументов нет.

Результат и правила работы

Результат STRING содержит полный нормализованный путь рабочей папки текущего запуска. Последующие относительные пути разрешаются от этой папки.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если сохранённую рабочую папку нельзя разрешить в полный путь.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT ISABSOLUTEPATH(CURRENTDIR())
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

CHANGEDIR

CHANGEDIR меняет рабочую папку текущего запуска. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

CHANGEDIR(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к каталогу.

Результат и правила работы

При успешном завершении функция возвращает TRUE; отказ сообщается диагностикой, а не значением FALSE.

Результат имеет тип BOOLEAN. Каталог должен существовать. Новый путь применяется к последующим относительным файловым операциям этого запуска.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если указанный каталог отсутствует или путь нельзя разрешить.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM previous AS STRING = CURRENTDIR()
PRINT CHANGEDIR(folder)
PRINT CURRENTDIR() = folder
CHANGEDIR(previous)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
TRUE

DIRSIZE

DIRSIZE возвращает суммарный размер обычных файлов дерева каталога в байтах. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

DIRSIZE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к каталогу.

Результат и правила работы

Результат имеет тип LONG. Обход рекурсивный; вложенные ссылки пропускаются. Каталог должен существовать. Переполнение суммы LONG вызывает MB3008.

Во время обхода между элементами проверяется остановка программы. При остановке запуск завершается без возврата частичной суммы; пользовательский CATCH остановку не перехватывает.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если каталог отсутствует, путь не разрешается или обход недоступен. Переполнение суммы LONG вызывает MB3008.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT DIRSIZE(folder)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

2

FREESPACE

Функция FREESPACE возвращает число свободных байтов диска, доступных текущему пользователю. Допустимы как путь файловой системы, так и строковые части пути.

Синтаксис

FREESPACE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь, по корню которого выбирается диск.

Результат и правила работы

Результат имеет тип LONG. Диск выбирается по корню разрешённого полного пути. Сам указанный файл или каталог существовать не обязан; диск должен быть доступен. Результат зависит от текущего состояния системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, он не определяет корень диска или сведения о выбранном диске недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT FREESPACE(folder) > 0
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

TOTALFREESPACE

Вызов TOTALFREESPACE возвращает общее число свободных байтов диска. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

TOTALFREESPACE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь, по корню которого выбирается диск.

Результат и правила работы

Результат имеет тип LONG. Диск выбирается по корню разрешённого полного пути. Сам указанный файл или каталог существовать не обязан; диск должен быть доступен. Результат зависит от текущего состояния системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, он не определяет корень диска или сведения о выбранном диске недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT TOTALFREESPACE(folder) > 0
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

TOTALSPACE

TOTALSPACE возвращает полную ёмкость диска в байтах. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

TOTALSPACE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь, по корню которого выбирается диск.

Результат и правила работы

Результат имеет тип LONG. Диск выбирается по корню разрешённого полного пути. Сам указанный файл или каталог существовать не обязан; диск должен быть доступен. Результат зависит от текущего состояния системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, он не определяет корень диска или сведения о выбранном диске недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT TOTALSPACE(folder) >= TOTALFREESPACE(folder)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

ISREADONLY

Функция ISREADONLY проверяет атрибут «только для чтения» файла или каталога. Допустимы как путь файловой системы, так и строковые части пути.

Синтаксис

ISREADONLY(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к файлу или каталогу.

Результат и правила работы

Результат имеет тип BOOLEAN. Объект должен существовать. Атрибут не является проверкой фактических прав записи.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если файл или каталог не существует, путь нельзя разрешить или атрибуты недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT ISREADONLY(path)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

FALSE

ISHIDDEN

ISHIDDEN проверяет атрибут «скрытый» файла или каталога. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

ISHIDDEN(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь к файлу или каталогу.

Результат и правила работы

Результат имеет тип BOOLEAN. Объект должен существовать. Проверяется именно атрибут файловой системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если файл или каталог не существует, путь нельзя разрешить или атрибуты недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT ISHIDDEN(path)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

FALSE

DRIVENAME

DRIVENAME возвращает строковое имя корня диска. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

DRIVENAME(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь, по корню которого выбирается диск.

Результат и правила работы

Результат имеет тип STRING. Диск выбирается по корню разрешённого полного пути. Сам указанный файл или каталог существовать не обязан; диск должен быть доступен. Результат зависит от текущего состояния системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, он не определяет корень диска или сведения о выбранном диске недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT DRIVENAME(folder) = PATHROOT(folder)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

DRIVEFORMAT

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

Синтаксис

DRIVEFORMAT(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь, по корню которого выбирается диск.

Результат и правила работы

Результат имеет тип STRING. Диск выбирается по корню разрешённого полного пути. Сам указанный файл или каталог существовать не обязан; диск должен быть доступен. Результат зависит от текущего состояния системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, он не определяет корень диска или сведения о выбранном диске недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT LEN(DRIVEFORMAT(folder)) > 0
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

DRIVETYPE

Вызов DRIVETYPE возвращает строковое название типа диска. Обращение идёт к пути файловой системы либо к строковым частям пути.

Синтаксис

DRIVETYPE(<путь>)

Аргументы

<путь> имеет тип STRING. Аргумент задаёт путь, по корню которого выбирается диск.

Результат и правила работы

Результат имеет тип STRING. Диск выбирается по корню разрешённого полного пути. Сам указанный файл или каталог существовать не обязан; диск должен быть доступен. Результат зависит от текущего состояния системы.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если путь нельзя разрешить, он не определяет корень диска или сведения о выбранном диске недоступны.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
PRINT LEN(DRIVETYPE(folder)) > 0
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

MAKETEMPFILE

MAKETEMPFILE создаёт пустой файл со случайным именем во временной папке системы. Работа идёт с путём файловой системы либо со строковыми частями пути.

Синтаксис

MAKETEMPFILE(<префикс>)

Аргументы

<префикс> имеет тип STRING. Строка префикса добавляется к случайному имени временного объекта; путь и недопустимые символы имени запрещены. Пустой префикс разрешён.

Результат и правила работы

Результат имеет тип STRING. Возвращается полный путь реально созданного объекта. Имена различаются между запусками. Автоматическое удаление после программы не выполняется; удаление нужно вызвать явно.

Файл создаётся как новый объект без перезаписи существующего объекта. При занятом случайном имени выбирается другое; число попыток ограничено. Ошибка создания вызывает MB3007.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если префикс содержит путь, недопустимый символ имени, равен . или .., либо создать файл во временной папке не удалось.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM temp AS STRING = MAKETEMPFILE("manual_")
PRINT FILEEXISTS(temp)
PRINT FILESIZE(temp)
DELETEFILE(temp)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE
0

MAKETEMPDIR

Функция MAKETEMPDIR создаёт каталог со случайным именем во временной папке системы. Допустимы как путь файловой системы, так и строковые части пути.

Синтаксис

MAKETEMPDIR(<префикс>)

Аргументы

<префикс> имеет тип STRING. Строка префикса добавляется к случайному имени временного объекта; путь и недопустимые символы имени запрещены. Пустой префикс разрешён.

Результат и правила работы

Результат имеет тип STRING. Возвращается полный путь реально созданного объекта. Имена различаются между запусками. Автоматическое удаление после программы не выполняется; удаление нужно вызвать явно.

Каталог создаётся штатной операцией выбора и создания уникального временного каталога. Существующий каталог не выдаётся за вновь созданный.

Диагностика

MB2004 означает неверное число аргументов; MB2003 — несовместимые типы. MB3007 возникает, если префикс содержит путь, недопустимый символ имени, равен . или .., либо создать каталог во временной папке не удалось.

Пример

DIM folder AS STRING = MAKETEMPDIR("axiom_manual_")
DIM path AS STRING = COMBINEPATH(folder, "notes.txt")
WRITEFILE(path, "AB")
DIM temp AS STRING = MAKETEMPDIR("manual_")
PRINT DIREXISTS(temp)
DELETEDIR(temp)
DELETEDIRRECURSIVE(folder)

Ожидаемый вывод:

TRUE

См. также

Файловая система · OPEN · CLOSE · TRY