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
TRUEDELETEFILE
Функция 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
FALSECOPYFILE
Вызов 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
ABMOVEFILE
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
FALSERENAMEFILE
Функция 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
TRUEDELETEDIR
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
FALSEDELETEDIRRECURSIVE
Вызов 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
FALSECOPYDIR
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
XMOVEDIR
Функция 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
FALSERENAMEDIR
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
TRUECURRENTDIR
Вызов 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)Ожидаемый вывод:
TRUECHANGEDIR
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
TRUEDIRSIZE
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)Ожидаемый вывод:
2FREESPACE
Функция 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)Ожидаемый вывод:
TRUETOTALFREESPACE
Вызов 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)Ожидаемый вывод:
TRUETOTALSPACE
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)Ожидаемый вывод:
TRUEISREADONLY
Функция 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)Ожидаемый вывод:
FALSEDRIVENAME
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)Ожидаемый вывод:
TRUEDRIVEFORMAT
Функция 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)Ожидаемый вывод:
TRUEDRIVETYPE
Вызов 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)Ожидаемый вывод:
TRUEMAKETEMPFILE
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
0MAKETEMPDIR
Функция 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