Файлы
Ниже описаны функции для работы с файлами и директориями.
Тип finfo используется для получения информации о файле и имеет следующие поля:
- str Name - имя файла
- int Size - размер файла в байтах
- int Mode - флаги файла и разрешения
- time Time - время последнего изменения
- bool IsDir - true, если это директория
- str Dir - директория, где расположен файл. Данное поле заполняется только при вызове функции ReadDir(str, int, str).
Тип file используется в функциях, которые работают с дескриптором открытого файла.
Функция AppendFile добавляет данные переменной типа buf или str в конец файла filename. Если файл не существует, то AppendFile создает его с правами 0644.
Функция ChDir изменяет текущую директорию.
Функция ChMode изменяет атрибуты файла.
Функция CloseFile закрывает дескриптор файла, который был открыт с помощью функции OpenFile.
Функция CopyFile копирует файл src в файл dest. Если файл dest существует, то он будет перезаписан. При копировании сохраняются атрибуты файла. Функция возвращает количество скопированных байт.
Функция CreateDir создает директорию с именем dirname, включая все необходимые родительские директории. Если dirname уже существующая директория, то CreateDir ничего не делает.
Функция CreateFile создает файл с указанным именем. Если параметр trunc равен true и файл уже существует, то в этом случае его размер станет 0.
Функция ExistFile возвращает true, если указанный файл или директория существует. В противном случае, возвращается false.
Функция FileInfo получает информацию об указанном файле и возвращает структуру finfo. Файл должен быть октрыт с помощью функции OpenFile.
Функция FileInfo получает информацию об указанном файле и возвращает структуру finfo.
Функция FileMode возвращает атрибуты файла.
Функция GetCurDir возвращает текущую директорию.
Функция IsEmptyDir возвращает true, если указанная директория пустая. В противном случае, возвращается false.
Функция Md5File возвращает MD5 хэш указанного файла в виде шестнадцатеричной строки.
Функция obj конвертирует переменную типа finfo в объект. Полученный объект имеет пол я: name, size, mode, time, isdir, dir.
Функция OpenFile открывает указанный файл и возвращает переменную типа file с дескриптором открытого файла. После работы с файлом дескриптор открытого файла дол жен быть закрыт с помощью функции CloseFile. Параметр flags может быть нулем или комбинацией следующих флагов:
- CREATE - если файл не существует, то он будет создан.
- TRUNC - файл будет обрезан до нулевой длины после открытия.
- READONLY - файл будет открыт только для чтения.
file f = OpenFile(fname, CREATE)
Write(f, buf("some test string"))
SetPos(f, -15, 1)
buf b &= Read(f, 5)
CloseFile(f)
Функция Read читает size количество байт с текущей позиции в файле, который был открыт с помощью функции OpenFile. Функция возвращает переменную типа buf, которая содержит прочитанные данные.
Функция ReadDir читает директорию с указанным именем и возвращает список её поддиректорий и файлов.
Функция ReadDir читает директорию dirname с указанным именем и возвращает список её поддиректорий и файлов в соотвествии с указанными параметрами. Параметр flags мо жет быть комбинацией следующих флагов:
- RECURSIVE - В этом случае будет рекурсивный поиск по всем поддиректориям.
- ONLYFILES - Возвращаемый массив будет содержать только файлы.
- ONLYDIRS - Возвращаемый массив будет содержать только директории.
- REGEXP - Параметр pattern содержит регулярное выражения для сравнения имён файлов.
Если вы укажете одновременно флаги ONLYFILES и ONLYDIRS, то будут искаться файлы и директории.
Па раметр pattern может содержать маску для файлов или регулярное выражение. В этом случае, будут возвращаться файлы и директории, которые соответствуют указанному шаблону. Маска может содержать следующие символы:
- '*' - любая последовательность, кроме символа разделителя
- '?' - любой одиночный символ, кроме символа разделителя
for item in ReadDir(ftemp, RECURSIVE, `*fold*`) {
ret += item.Name
}
for item in ReadDir(ftemp, RECURSIVE | ONLYFILES | REGEXP, `.*\.pdf`) {
ret += item.Name
}
Функция ReadDir читает директорию dirname с указанным именем и возвращает список её поддиректорий и файлов в соотвествии с указанными параметрами. Параметр flags описан выше. Параметр patterns является массивом строк и может содержать маски для файлов или регулярные выражения. Параметр ignore также содержит маски для файлов или регулярные выражения, но такие файлы или директории будут пропускаться. Если вы хотите указать в этих массивах регулярное выражение, то заключите его между символами '/'.
arr.str aignore = {`/txt/`, `*.pak`}
arr.str amatch = {`/\d+/`, `*.p??`, `/di/`}
for item in ReadDir(ftemp, RECURSIVE, amatch, aignore) {
ret += item.Name
}
Функция ReadFile читает указанный файл и возвращает его содержимое в виде строки.
Функция ReadFile читает файл filename в переменную out типа buf и возвращает эту переменную.
Функция ReadFile читает данные из файла filename начиная со смещения offset и длиной length. Если offset меньше нуля, то смещение считается от конца к началу файла.
Функция Remove удаляет файл или пустую директорию.
Функция RemoveDir удаляет директорию dirname включая всё её содержимое.
Функция Rename переименовывает (переносит) oldpath в newpath. Если newpath уже существует и является файлом, то Rename заменяет его.
Функция SetFileTime изменяет время последней записи у указанного файла.
Функция SetPos устанавливает в файле текущую позицию для операций чтения или записи. Файл должен быть открыт с помощью функции OpenFile. Функция возвращает смещение новой позиции. Параметр whence может принимать следующие значения:
- 0 - смещение off указано от начало файла.
- 1 - смещение off указано от текущей позиции.
- 2 - смещение off указано от конца файла.
Функция Sha256File возвращает SHA256 хэш указанного файла в виде шестнадцатеричной строки.
Функция TempDir возвращает временную директорию по умолчанию.
Функция TempDir создает новую временную директорию в директории path с именем, начинающемся на prefix и возвращает полное имя этой новой директории. Если path пустая строка, TempDir использует временную директорию по умолчанию.
Функция Write записывает данные из переменной типа buf в файл, который был открыт с помощью функции OpenFile. Функция возвращает параметр f.
Функция WriteFile записывает данные из переменной типа buf или строки в файл filename. Если файл не существует, то он будет создан с разрешениями 0777, в противном случае, файл будет перезаписан заново.
Last modified 2yr ago