reckfellENGINE

FileAccess

Доступ к файлам с явными режимами, байтовыми форматами и проверкой ошибок.

На этой странице
class FileAccessReckfellSharpНаследует RefCounted

FileAccess читает и пишет файлы по OS path, asset:// и user://. Для прогресса используйте user://; импортированные ресурсы проекта загружайте через ResourceLoader, не рассчитывая на доступность исходного файла после экспорта.

Проверьте Open() на null и сразу получите GetOpenError() на том же потоке. Собственный handle освобождайте через using. Write/WriteRead очищают существующий файл; ReadWrite сохраняет содержимое и начинает с позиции 0. Родительские каталоги создаются отдельно.

Позиции и длины измеряются в байтах. Проверяйте фактическую длину GetBuffer() и результат записи; одно числовое значение или пустая строка не доказывают успех. GetAsText() читает весь файл с восстановлением позиции, а EofReached() отмечает чтение за конец. BigEndian относится к числовым полям, не меняет произвольные байты/UTF-8.

Поведение зависит от handle: обычный Windows Flush() сбрасывает output buffer, а сжатые/зашифрованные контейнеры держат запись в памяти до закрытия. Ни один из этих вызовов не является общей гарантией сохранности при отключении питания. У encrypted Write есть проверенное ограничение: неверный ключ может быть обнаружен уже после усечения назначения.

Чтение UTF-8 и диагностика, двоичный слот, сохранение с резервной копией. Проверки выполнялись на Windows в отдельных проектах; временные файлы проверены по исходникам, а безопасность шифрования и другие платформы не сертифицировались.

Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.

Свойства1

BigEndianСвойство
# BigEndian
C#
public bool BigEndian { get; set; }

Настройка порядка байтов числовых Get/Store операций данного handle; false — little-endian, true — big-endian. Новый Open() даёт новый handle со стандартным false: значение не сохраняется в файл как метаданные. Не переставляет байты GetBuffer/StoreBuffer или UTF-8 текста. У StoreVar/GetVar влияет на 32-битный префикс длины, но не на внутренний Variant payload; это проверено. Читатель и писатель должны договориться о формате.

Методы76

Closevoid
# Close
C#
public void Close();

Закрывает файл данного handle; using/Dispose собственного wrapper также завершает его использование. Не продолжайте чтение, seek или EofReached() после закрытия. Повторный Close() проверен на Windows, но это не повторное открытие; Open() создаёт другой handle. Возвращаемого Error у метода нет, поэтому закрытие не является подтверждением надёжного сохранения.

CreateTemp2 перегрузки
# CreateTemp · 1/2
C#
public static FileAccess CreateTemp(FileAccess.ModeFlags modeFlags, string prefix = "", string extension = "", bool keep = false);

Создаёт файл в OS temp и возвращает собственный RefCounted handle с выбранным режимом. Файл сначала создаётся через Write и затем открывается в запрошенном режиме, поэтому Read может открыть новый пустой temp-файл. prefix/extension — части имени, не пути. При null сразу читайте GetOpenError(). keep=false включает попытку удаления исходного temp-файла при освобождении последней native-ссылки; Close() сам по себе только закрывает поток. keep=true сохраняет файл после освобождения. C# using снимает собственную ссылку, но другие владельцы могут продлить срок жизни. Очистка после сбоя процесса не гарантируется; lifecycle здесь сверён только по исходникам.

Параметры
ИмяТипПо умолчанию
modeFlagsFileAccess.ModeFlags—
prefixstring""
extensionstring""
keepboolfalse
modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

prefix

Допустимый префикс имени без разделителей пути; пустой разрешён.

extension

Допустимое расширение имени; не каталог. Одна начальная точка удаляется native кодом.

keep

True сохраняет temp-файл после освобождения; false включает попытку удаления последней native-ссылкой.

Возвращает FileAccess

Собственный temp handle либо null; автоматическая очистка зависит от keep и native-ссылок.

# CreateTemp · 2/2
C#
public static FileAccess CreateTemp(int modeFlags, string prefix, string extension, bool keep);

Создаёт файл в OS temp и возвращает собственный RefCounted handle с выбранным режимом. Файл сначала создаётся через Write и затем открывается в запрошенном режиме, поэтому Read может открыть новый пустой temp-файл. prefix/extension — части имени, не пути. При null сразу читайте GetOpenError(). keep=false включает попытку удаления исходного temp-файла при освобождении последней native-ссылки; Close() сам по себе только закрывает поток. keep=true сохраняет файл после освобождения. C# using снимает собственную ссылку, но другие владельцы могут продлить срок жизни. Очистка после сбоя процесса не гарантируется; lifecycle здесь сверён только по исходникам. Overload с int передаёт числовое значение как ModeFlags; используйте только значения этого enum.

Параметры
ИмяТипПо умолчанию
modeFlagsint—
prefixstring—
extensionstring—
keepbool—
modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

prefix

Допустимый префикс имени без разделителей пути; пустой разрешён.

extension

Допустимое расширение имени; не каталог. Одна начальная точка удаляется native кодом.

keep

True сохраняет temp-файл после освобождения; false включает попытку удаления последней native-ссылкой.

Возвращает FileAccess

Собственный temp handle либо null; автоматическая очистка зависит от keep и native-ссылок.

EofReachedbool
# EofReached
C#
public bool EofReached();

Признак чтения за конец файла, не сравнение GetPosition() с GetLength(). В Windows точное чтение всех доступных байт оставляет false; следующая попытка чтения включает EOF. Пустая строка может быть обычной пустой строкой файла. Используйте только на открытом handle и проверяйте фактическую длину GetBuffer()/результат чтения.

Возвращает bool

Признак чтения за EOF; положение точно в конце само по себе не достаточно.

FileExistsbool
# FileExists
C#
public static bool FileExists(string path);

Проверяет файл через backend/packed data; каталог не считается файлом. False не различает отсутствие и недоступность; true не гарантирует следующий Open() и не заменяет ResourceLoader для импортированных ресурсов. Не используйте как единственную обработку ошибок: проверяйте сам Open().

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь проверяемого файла; само открытие всё равно требует проверки результата.

Возвращает bool

True, если backend видит файл; false также возможен при недоступности.

Flushvoid
# Flush
C#
public void Flush();

Сбрасывает буфер записи открытого handle в backend; не закрывает файл. В Windows вызывается fflush, отдельного Error метод не возвращает. После буферизованных записей вызывайте перед Resize(), иначе последующий сброс может восстановить старую длину; это воспроизведено. Не равен System.IO.FileStream.Flush(true) и не гарантирует сохранность при отключении питания.

Get16ushort
# Get16
C#
public ushort Get16();

Читает беззнаковое 16-битное число из 2 байт текущей позиции. Порядок байтов задаёт BigEndian этого handle; по умолчанию little-endian. Короткое чтение не даёт отдельного bool и может вернуть частичное значение; ноль также допустим как данные. Проверяйте размер записи и GetError(), не определяйте успех по самому числу.

Возвращает ushort

16-битное беззнаковое значение; при недочитанной записи возможно частичное значение.

Get32uint
# Get32
C#
public uint Get32();

Читает беззнаковое 32-битное число из 4 байт текущей позиции. Порядок байтов задаёт BigEndian этого handle; по умолчанию little-endian. Короткое чтение не даёт отдельного bool и может вернуть частичное значение; ноль также допустим как данные. Проверяйте размер записи и GetError(), не определяйте успех по самому числу.

Возвращает uint

32-битное беззнаковое значение; при недочитанной записи возможно частичное значение.

Get64ulong
# Get64
C#
public ulong Get64();

Читает беззнаковое 64-битное число из 8 байт текущей позиции. Порядок байтов задаёт BigEndian этого handle; по умолчанию little-endian. Короткое чтение не даёт отдельного bool и может вернуть частичное значение; ноль также допустим как данные. Проверяйте размер записи и GetError(), не определяйте успех по самому числу.

Возвращает ulong

64-битное беззнаковое значение; при недочитанной записи возможно частичное значение.

Get8byte
# Get8
C#
public byte Get8();

Читает беззнаковое 8-битное число из 1 байт текущей позиции. Для одного байта BigEndian ничего не меняет. Короткое чтение не даёт отдельного bool и может вернуть частичное значение; ноль также допустим как данные. Проверяйте размер записи и GetError(), не определяйте успех по самому числу.

Возвращает byte

8-битное беззнаковое значение; при недочитанной записи возможно частичное значение.

GetAccessTimeulong
# GetAccessTime
C#
public static ulong GetAccessTime(string file);

Метка доступа в целых секундах Unix epoch. Не счётчик чтений и не надёжный признак последнего игрового действия: обновление зависит от ОС/файловой системы. В Windows при отсутствии access time возможен fallback к creation time; ошибка может дать 0 с диагностикой. Не определяйте доступность/право чтения только по этой метке.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает ulong

Unix seconds; не гарантированно обновляемая метка каждого чтения.

GetAsText2 перегрузки
# GetAsText · 1/2
C#
public string GetAsText();

Читает весь файл как UTF-8 от начала и затем восстанавливает исходную позицию. Это не чтение оставшейся части. Основной overload сохраняет CR; метод выделяет память под всё содержимое, поэтому заранее проверяйте размер. Не является строгой проверкой UTF-8/схемы; для строгого декодирования читайте ограниченный GetBuffer() и проверяйте декодер отдельно. Восстановление позиции не гарантирует неизменный GetError().

Возвращает string

UTF-8 текст всего файла; пустая строка сама по себе не подтверждает успех.

# GetAsText · 2/2
C#
public string GetAsText(bool skipCr);

Читает весь файл как UTF-8 от начала и затем восстанавливает исходную позицию. Это не чтение оставшейся части. Основной overload сохраняет CR; метод выделяет память под всё содержимое, поэтому заранее проверяйте размер. Не является строгой проверкой UTF-8/схемы; для строгого декодирования читайте ограниченный GetBuffer() и проверяйте декодер отдельно. Восстановление позиции не гарантирует неизменный GetError().

Параметры
ИмяТипПо умолчанию
skipCrbool—
skipCr

True удаляет все CR, включая одиночные, а не только CRLF. False сохраняет исходные CR.

Возвращает string

UTF-8 текст всего файла; пустая строка сама по себе не подтверждает успех.

GetBufferbyte[]
# GetBuffer
C#
public byte[] GetBuffer(long length);

Читает до length байт от текущей позиции и возвращает новый C# byte[]. При EOF массив может быть короче запроса; проверяйте Length для фиксированного формата. 0 возвращает пустой массив без чтения, отрицательная длина недопустима. Ограничивайте объём заранее; пустой массив не различает нулевой запрос, конец и ошибку.

Параметры
ИмяТипПо умолчанию
lengthlong—
length

Запрошенное число байт >= 0; заранее ограничьте размер выделения.

Возвращает byte[]

Новый byte[] фактически прочитанных байт, возможно короче length.

GetCsvLinestring[]
# GetCsvLine
C#
public string[] GetCsvLine(string delim = ",");

Читает CSV-запись в string[]; quoted поле может занимать несколько физических строк. Разделитель — один символ, не двойная кавычка; экранирование кавычки внутри quoted поля — удвоение. Переводы строк при чтении нормализуются через GetLine(). Пустая строка даёт одно пустое поле, не однозначный признак EOF. Метод не проверяет вашу схему/число колонок; повреждённые кавычки могут дать диагностику и результат, поэтому валидируйте запись отдельно.

Параметры
ИмяТипПо умолчанию
delimstring","
delim

Один символ разделителя, отличный от двойной кавычки для парного чтения/записи. Не многосимвольная строка.

Возвращает string[]

Поля одной CSV-записи; пустая запись обычно содержит одно пустое поле. Схему проверяйте отдельно.

GetDoubledouble
# GetDouble
C#
public double GetDouble();

Читает Double из 8 байт и возвращает C# double. BigEndian учитывается через числовую раскладку. Метод не проверяет конечность или допустимый диапазон для игровой логики. Формат, оставшийся размер записи и статус I/O проверяйте отдельно; это не чтение текстового числа.

Возвращает double

C# double; полученное число само по себе не доказывает полное успешное чтение.

GetErrorError
# GetError
C#
public Error GetError();

Последний статус backend данного handle, а не ошибка последнего Open(). Проверяйте сразу после операции. В Windows успешный Seek() может очистить EOF indicator, сохранив прежний FileEof в GetError(); успешное последующее чтение обновляет статус. Не трактуйте старый код как новую неудачу и не игнорируйте bool/длину результата текущей операции.

Возвращает Error

Последний обновлённый backend Error; он может оставаться от предыдущей операции.

GetExtendedAttributebyte[]
# GetExtendedAttribute
C#
public static byte[] GetExtendedAttribute(string file, string attributeName);

Читает байты именованного расширенного атрибута/потока через backend; Windows использует alternate data stream. Пустой byte[] не различает пустое значение, отсутствующее имя, ошибку или неподдерживаемый backend. Список имён даёт дополнительную информацию, но не атомарную проверку. Для данных, записанных SetExtendedAttributeString(), raw bytes могут включать завершающий NUL.

Параметры
ИмяТипПо умолчанию
filestring—
attributeNamestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

attributeName

Непустое имя в формате backend; Windows использует имя отдельного data stream. Не является путём основного файла.

Возвращает byte[]

Новый byte[] значения; пустое не является однозначной диагностикой.

GetExtendedAttributeStringstring
# GetExtendedAttributeString
C#
public static string GetExtendedAttributeString(string file, string attributeName);

Получает именованные байты и декодирует их как UTF-8. Не является строгой проверкой текста; пустой результат не различает отсутствие, пустые данные и неудачу. Для точного формата получите GetExtendedAttribute() и задайте собственную политику UTF-8/терминатора. Нельзя считать атрибут частью основного содержимого, возвращаемого GetFileAsBytes().

Параметры
ИмяТипПо умолчанию
filestring—
attributeNamestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

attributeName

Непустое имя в формате backend; Windows использует имя отдельного data stream. Не является путём основного файла.

Возвращает string

Декодированная строка; пустое не является однозначной диагностикой.

GetExtendedAttributesListstring[]
# GetExtendedAttributesList
C#
public static string[] GetExtendedAttributesList(string file);

Имена доступных backend расширенных атрибутов/потоков. Windows перечисляет именованные data streams, не включая основной безымянный поток. Порядок не является контрактом. Пустой массив также возможен при недоступности/ошибке, отдельного Error нет; список может измениться до чтения значения.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает string[]

string[] имён без обещания сортировки или атомарности.

GetFileAsBytesbyte[]
# GetFileAsBytes
C#
public static byte[] GetFileAsBytes(string path);

Открывает файл, выделяет массив под всю длину и возвращает байты без декодирования. Bound helper обновляет GetOpenError(): пустой массив может быть корректным пустым файлом либо ошибкой открытия, проверяйте код сразу. Это удобный helper, не ограниченный по размеру reader: native путь не выдаёт фактическое число прочитанных байт отдельно. Для строгого лимита/обработки короткого чтения используйте Open(), GetLength() и ограниченный GetBuffer().

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла для чтения; размер и доступность могут измениться после отдельной проверки.

Возвращает byte[]

Новый byte[]; пустой массив требует проверки GetOpenError() для различения ошибки открытия.

GetFileAsStringstring
# GetFileAsString
C#
public static string GetFileAsString(string path);

Читает весь файл и декодирует UTF-8; CR сохраняются. Пустая строка может быть корректными данными или ошибкой открытия — сразу проверяйте GetOpenError(), обновляемый helper. Этот код отражает открытие, не полноценную проверку UTF-8, схемы или конкурентного изменения файла. Для строгого декодирования используйте ограниченное чтение байт и проверяющий декодер.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла для чтения; размер и доступность могут измениться после отдельной проверки.

Возвращает string

UTF-8 строка; проверяйте GetOpenError() отдельно от декодирования/схемы.

GetFloatfloat
# GetFloat
C#
public float GetFloat();

Читает Float из 4 байт и возвращает C# float. BigEndian учитывается через числовую раскладку. Метод не проверяет конечность или допустимый диапазон для игровой логики. Формат, оставшийся размер записи и статус I/O проверяйте отдельно; это не чтение текстового числа.

Возвращает float

C# float; полученное число само по себе не доказывает полное успешное чтение.

GetHalffloat
# GetHalf
C#
public float GetHalf();

Читает Half из 2 байт и возвращает C# float. BigEndian учитывается через числовую раскладку. Half теряет точность исходного float: это 16-битное хранение, не 32-битное. Формат, оставшийся размер записи и статус I/O проверяйте отдельно; это не чтение текстового числа.

Возвращает float

C# float; полученное число само по себе не доказывает полное успешное чтение.

GetHiddenAttributebool
# GetHiddenAttribute
C#
public static bool GetHiddenAttribute(string file);

Спрашивает backend о hidden-атрибуте существующего пути; Windows читает FILE_ATTRIBUTE_HIDDEN. Это не правило «имя начинается с точки» для всех платформ и не ограничение доступа. False может быть результатом ошибки с диагностикой, а не подтверждением обычного файла. Packed-данные могут не предоставлять атрибут.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает bool

Backend hidden flag; false не подтверждает успешное чтение атрибутов.

GetLengthulong
# GetLength
C#
public ulong GetLength();

Длина открытого файла в байтах, не оставшийся объём и не число символов. Проверяйте лимит до выделения буфера, но учитывайте, что содержимое может измениться. Windows временно выполняет seek к концу и назад; состояние EOF может измениться, поэтому это не замена проверке результата чтения.

Возвращает ulong

Размер открытого файла в байтах.

GetLinestring
# GetLine
C#
public string GetLine();

Читает следующую UTF-8 строку с текущей позиции, не возвращая разделитель. Обрабатывает LF, CRLF и одиночный CR; NUL тоже останавливает строку, поэтому метод не подходит для произвольных бинарных данных. Пустая строка не обязательно означает EOF; последняя строка без завершающего перевода строки также возвращается. Для ограниченных входных данных следите за размером файла.

Возвращает string

Строка без разделителя; пустая строка также возможна до EOF.

GetMd5string
# GetMd5
C#
public static string GetMd5(string path);

Читает основной поток файла и возвращает MD5 как 32 строчных hex-символов. Корректный пустой файл имеет непустой digest; ошибка открытия даёт пустую строку. Это хеш, не цифровая подпись или проверка доверия к источнику. Native helper не предоставляет отдельный статус полноты чтения; I/O ошибки после частичного чтения и конкурирующие изменения здесь не проверялись.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла для чтения; размер и доступность могут измениться после отдельной проверки.

Возвращает string

32 строчных hex-символа или пустая строка при неудачном открытии.

GetModifiedTimeulong
# GetModifiedTime
C#
public static ulong GetModifiedTime(string file);

Метка изменения в целых секундах Unix epoch, не миллисекундах и не локальном времени. В Windows при отсутствующей write time возможен fallback к creation time; при ошибке/недоступности возможен 0. Точность и обновление зависят от backend. Для проверки содержимого одной метки недостаточно; packed/export metadata здесь не выполнялись.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает ulong

Unix seconds; 0 также возможен при недоступном результате.

GetOpenErrorError
# GetOpenError
C#
public static Error GetOpenError();

Последняя ошибка публичного открытия файла на текущем потоке. Следующий вызов семейства Open может заменить её даже при успехе. Получайте сразу после null; для чтения/записи уже открытого handle используйте результат операции и GetError(), а не этот static getter.

Возвращает Error

Последний статус открытия на этом потоке; не статус текущей операции handle.

GetPascalStringstring
# GetPascalString
C#
public string GetPascalString();

Читает 32-битную длину и затем UTF-8 payload, не обычную строку до LF/NUL. Длина задаётся в байтах и читается с BigEndian. Native метод выделяет буфер по префиксу: прежде чем применять его к внешним данным, проверьте ограничение длины и наличие payload. Возвращённая строка не является строгой валидацией повреждённой записи; неверные/огромные длины в этом проходе не выполнялись.

Возвращает string

Декодированная строка; один результат не подтверждает корректный frame/размер.

GetPathstring
# GetPath
C#
public string GetPath();

Путь, связанный с открытым handle; Windows возвращает исходную строку Open(), например asset://. Это не обязательно нормализованный OS path или постоянный ID. Для физического пути используйте GetPathAbsolute(), учитывая ограничения backend/экспорта.

Возвращает string

Связанный с handle исходный/платформенный путь.

GetPathAbsolutestring
# GetPathAbsolute
C#
public string GetPathAbsolute();

Абсолютное представление пути данного handle, если backend его предоставляет. Windows убирает служебный префикс и использует прямые разделители. Это не доказательство существования, права записи, доступности вне приложения или реального loose-файла в экспортированном пакете.

Возвращает string

Абсолютное представление backend; не универсальный физический путь для всех экспортов.

GetPositionulong
# GetPosition
C#
public ulong GetPosition();

Текущая позиция открытого файла в байтах. UTF-8 символ может занимать несколько байт; позиция не равна числу символов. Используйте вместе с допустимым форматом данных и результатом чтения. Позиция в конце сама по себе не означает EofReached().

Возвращает ulong

Текущий байтовый offset, не индекс символа.

GetReadOnlyAttributebool
# GetReadOnlyAttribute
C#
public static bool GetReadOnlyAttribute(string file);

Читает backend read-only атрибут, в Windows — FILE_ATTRIBUTE_READONLY. Не является полной проверкой ACL, возможности Open(Write) или доступа другого процесса. False также возможен при ошибке запроса с диагностикой; проверяйте результат реальной операции записи отдельно.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает bool

Backend read-only flag; не полная модель прав доступа.

GetRealfloat
# GetReal
C#
public float GetReal();

Читает native real по внутреннему режиму чтения; текущий SDK возвращает C# float, а установленный build прочитал 4 байта. Не считайте этот метод универсальным согласованием precision между сборками. Для стабильного внешнего формата выберите GetFloat() или GetDouble() явно и закрепите ширину, порядок байтов и версию записи.

Возвращает float

C# float текущего SDK; ширина native формата должна быть согласована отдельно.

GetSha256string
# GetSha256
C#
public static string GetSha256(string path);

Читает основной поток файла и возвращает SHA-256 как 64 строчных hex-символов. Корректный пустой файл имеет непустой digest; ошибка открытия даёт пустую строку. Это хеш, не цифровая подпись или проверка доверия к источнику. Native helper не предоставляет отдельный статус полноты чтения; I/O ошибки после частичного чтения и конкурирующие изменения здесь не проверялись.

Параметры
ИмяТипПо умолчанию
pathstring—
path

Путь файла для чтения; размер и доступность могут измениться после отдельной проверки.

Возвращает string

64 строчных hex-символа или пустая строка при неудачном открытии.

GetSizelong
# GetSize
C#
public static long GetSize(string file);

Размер файла по пути в байтах, без открытия публичного handle. Для обычной ошибки backend возможен -1, но это не универсальный индикатор: Windows для некоторых недопустимых путей возвращает 0. Ноль поэтому не доказывает существование пустого файла. Проверяйте сам Open() для дальнейшего I/O; размер может измениться после запроса.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает long

Размер в байтах либо backend sentinel; -1 и 0 не одинаково трактуются для всех путей.

GetUnixPermissionsFileAccess.UnixPermissionFlags
# GetUnixPermissions
C#
public static FileAccess.UnixPermissionFlags GetUnixPermissions(string file);

Возвращает Unix permission bits, если backend их предоставляет, не полный ACL. Windows возвращает 0 даже для доступного файла: это не означает отсутствие всех прав. Packed-данные также могут дать 0. Поддержка и право фактического открытия определяются отдельно.

Параметры
ИмяТипПо умолчанию
filestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

Возвращает FileAccess.UnixPermissionFlags

Permission bitmask; 0 также означает отсутствие поддержки в Windows.

GetVarVariant
# GetVar
C#
public Variant GetVar(bool allowObjects = false);

Читает запись StoreVar: 32-битную длину с текущим BigEndian и native Variant payload. В C# ограничивайте срок жизни результата через using Variant. Nil может быть корректно сохранённым значением, а при ошибке также возможен Nil: это не достаточный признак успеха. Заранее ограничьте frame и проверяйте схему/типы. allowObjects=false оставляйте для внешних данных; true допускает создание native объектов по данным, а не просто дополнительные поля. Полные объекты и повреждённые длины здесь не выполнялись.

Параметры
ИмяТипПо умолчанию
allowObjectsboolfalse
allowObjects

По умолчанию false. Разрешайте true только для доверенного объектного формата, понимая возможность создания классов из payload.

Возвращает Variant

Variant прочитанной записи; Nil также может быть допустимыми данными. Собственный результат освобождайте через using.

IsBigEndianbool
# IsBigEndian
C#
public bool IsBigEndian();

Настройка порядка байтов числовых Get/Store операций данного handle; false — little-endian, true — big-endian. Новый Open() даёт новый handle со стандартным false: значение не сохраняется в файл как метаданные. Не переставляет байты GetBuffer/StoreBuffer или UTF-8 текста. У StoreVar/GetVar влияет на 32-битный префикс длины, но не на внутренний Variant payload; это проверено. Читатель и писатель должны договориться о формате.

Возвращает bool

Текущее значение BigEndian данного handle.

IsOpenbool
# IsOpen
C#
public bool IsOpen();

Проверяет, удерживает ли живой handle открытый файл. После Close() возвращает false на проверенном Windows. Не подтверждает режим записи, наличие места, актуальность содержимого или успех прошлой операции. После Dispose не используйте wrapper даже ради этой проверки.

Возвращает bool

True, если живой handle удерживает открытый файл.

OpenFileAccess
# Open
C#
public static FileAccess Open(string path, FileAccess.ModeFlags flags);

Открывает файл и возвращает собственный RefCounted handle; в C# используйте using. При null сразу читайте GetOpenError() на том же потоке. Read/ReadWrite требуют существующий файл; Write/WriteRead создают файл либо очищают существующий. ReadWrite сохраняет содержимое и начинает с позиции 0, не является append. Родители не создаются. Для прогресса используйте user://; наличие исходного файла в asset:// после экспорта не гарантируется.

Параметры
ИмяТипПо умолчанию
pathstring—
flagsFileAccess.ModeFlags—
path

Путь файла: user://, asset:// либо допустимый OS path; родитель должен существовать.

flags

Read/ReadWrite для существующего файла; Write/WriteRead создают или усекают. Не путайте ReadWrite с WriteRead.

Возвращает FileAccess

Собственный FileAccess либо null; GetOpenError() нужно получить сразу.

OpenCompressedFileAccess
# OpenCompressed
C#
public static FileAccess OpenCompressed(string path, FileAccess.ModeFlags modeFlags, FileAccess.CompressionMode compressionMode = FileAccess.CompressionMode.Fastlz);

Открывает контейнер сжатия FileAccess, а не произвольный .zip/.gz. Даже CompressionMode.GZip здесь выбирает алгоритм внутри engine-контейнера GCPF. Для записи используйте Write, для чтения Read; ReadWrite отвергается, WriteRead не является поддержанным редактированием готового контейнера. При чтении алгоритм берётся из заголовка. Запись буферизуется до Close()/освобождения; Flush() её не финализирует. Возвращаемый handle принадлежит вызывающему; при null сразу проверяйте GetOpenError(). Повреждённые/чужие контейнеры не являются проверенными входными данными.

Параметры
ИмяТипПо умолчанию
pathstring—
modeFlagsFileAccess.ModeFlags—
compressionModeFileAccess.CompressionModeFileAccess.CompressionMode.Fastlz
path

Путь файла контейнера; при Write существующее содержимое может быть потеряно до завершения настройки.

modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

compressionMode

Алгоритм записи внутри GCPF; чтение выбирает его из заголовка. Поддержка записи конкретного алгоритма должна быть доступна; Brotli используется только для чтения.

Возвращает FileAccess

Собственный FileAccess либо null; при null сразу GetOpenError().

OpenEncrypted4 перегрузки
# OpenEncrypted · 1/4
C#
public static FileAccess OpenEncrypted(string path, FileAccess.ModeFlags modeFlags, byte[] key);

Открывает собственный зашифрованный контейнер FileAccess с 32-байтным ключом; используйте только Read или Write. Критично для 1.0.0: базовый Write открывает/усекает назначение до проверки ключа. Неверная длина ключа может вернуть null/Error.InvalidParameter уже после потери прежнего содержимого; это воспроизведено на одноразовом файле. Проверяйте параметры до вызова и не записывайте поверх единственной ценной копии. Данные держатся в памяти до Close()/освобождения; Flush() не пишет готовый контейнер. IV при записи должен быть пустым для генерации либо 16 байт; при чтении используется IV из файла. Формат использует AES-CFB и MD5 данных, не отдельный проверенный authenticated-encryption протокол. Проверка безопасности и чтение с неверным ключом не выполнялись; roundtrip не доказывает стойкость. При null сразу проверяйте GetOpenError(). Overload без iV выбирает автоматическую генерацию IV при записи.

Параметры
ИмяТипПо умолчанию
pathstring—
modeFlagsFileAccess.ModeFlags—
keybyte[]—
path

Путь файла контейнера; при Write существующее содержимое может быть потеряно до завершения настройки.

modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

key

Ключ ровно 32 байта. Проверьте длину до открытия Write: native проверка происходит после открытия базового файла. Array/span не являются текстовым паролем.

Возвращает FileAccess

Собственный FileAccess либо null; ошибка Write не означает сохранность существовавшего файла.

# OpenEncrypted · 2/4
C#
public static FileAccess OpenEncrypted(string path, FileAccess.ModeFlags modeFlags, byte[] key, byte[] iV = null);

Открывает собственный зашифрованный контейнер FileAccess с 32-байтным ключом; используйте только Read или Write. Критично для 1.0.0: базовый Write открывает/усекает назначение до проверки ключа. Неверная длина ключа может вернуть null/Error.InvalidParameter уже после потери прежнего содержимого; это воспроизведено на одноразовом файле. Проверяйте параметры до вызова и не записывайте поверх единственной ценной копии. Данные держатся в памяти до Close()/освобождения; Flush() не пишет готовый контейнер. IV при записи должен быть пустым для генерации либо 16 байт; при чтении используется IV из файла. Формат использует AES-CFB и MD5 данных, не отдельный проверенный authenticated-encryption протокол. Проверка безопасности и чтение с неверным ключом не выполнялись; roundtrip не доказывает стойкость. При null сразу проверяйте GetOpenError().

Параметры
ИмяТипПо умолчанию
pathstring—
modeFlagsFileAccess.ModeFlags—
keybyte[]—
iVbyte[]null
path

Путь файла контейнера; при Write существующее содержимое может быть потеряно до завершения настройки.

modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

key

Ключ ровно 32 байта. Проверьте длину до открытия Write: native проверка происходит после открытия базового файла. Array/span не являются текстовым паролем.

iV

При записи пустое значение включает генерацию IV; непустое должно иметь 16 байт. При чтении используется IV заголовка. Не переносите фиксированный QA-IV в производственную схему.

Возвращает FileAccess

Собственный FileAccess либо null; ошибка Write не означает сохранность существовавшего файла.

# OpenEncrypted · 3/4
C#
public static FileAccess OpenEncrypted(string path, FileAccess.ModeFlags modeFlags, ReadOnlySpan<byte> key);

Открывает собственный зашифрованный контейнер FileAccess с 32-байтным ключом; используйте только Read или Write. Критично для 1.0.0: базовый Write открывает/усекает назначение до проверки ключа. Неверная длина ключа может вернуть null/Error.InvalidParameter уже после потери прежнего содержимого; это воспроизведено на одноразовом файле. Проверяйте параметры до вызова и не записывайте поверх единственной ценной копии. Данные держатся в памяти до Close()/освобождения; Flush() не пишет готовый контейнер. IV при записи должен быть пустым для генерации либо 16 байт; при чтении используется IV из файла. Формат использует AES-CFB и MD5 данных, не отдельный проверенный authenticated-encryption протокол. Проверка безопасности и чтение с неверным ключом не выполнялись; roundtrip не доказывает стойкость. При null сразу проверяйте GetOpenError(). Overload без iV выбирает автоматическую генерацию IV при записи.

Параметры
ИмяТипПо умолчанию
pathstring—
modeFlagsFileAccess.ModeFlags—
keyReadOnlySpan<byte>—
path

Путь файла контейнера; при Write существующее содержимое может быть потеряно до завершения настройки.

modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

key

Ключ ровно 32 байта. Проверьте длину до открытия Write: native проверка происходит после открытия базового файла. Array/span не являются текстовым паролем.

Возвращает FileAccess

Собственный FileAccess либо null; ошибка Write не означает сохранность существовавшего файла.

# OpenEncrypted · 4/4
C#
public static FileAccess OpenEncrypted(string path, FileAccess.ModeFlags modeFlags, ReadOnlySpan<byte> key, ReadOnlySpan<byte> iV);

Открывает собственный зашифрованный контейнер FileAccess с 32-байтным ключом; используйте только Read или Write. Критично для 1.0.0: базовый Write открывает/усекает назначение до проверки ключа. Неверная длина ключа может вернуть null/Error.InvalidParameter уже после потери прежнего содержимого; это воспроизведено на одноразовом файле. Проверяйте параметры до вызова и не записывайте поверх единственной ценной копии. Данные держатся в памяти до Close()/освобождения; Flush() не пишет готовый контейнер. IV при записи должен быть пустым для генерации либо 16 байт; при чтении используется IV из файла. Формат использует AES-CFB и MD5 данных, не отдельный проверенный authenticated-encryption протокол. Проверка безопасности и чтение с неверным ключом не выполнялись; roundtrip не доказывает стойкость. При null сразу проверяйте GetOpenError().

Параметры
ИмяТипПо умолчанию
pathstring—
modeFlagsFileAccess.ModeFlags—
keyReadOnlySpan<byte>—
iVReadOnlySpan<byte>—
path

Путь файла контейнера; при Write существующее содержимое может быть потеряно до завершения настройки.

modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

key

Ключ ровно 32 байта. Проверьте длину до открытия Write: native проверка происходит после открытия базового файла. Array/span не являются текстовым паролем.

iV

При записи пустое значение включает генерацию IV; непустое должно иметь 16 байт. При чтении используется IV заголовка. Не переносите фиксированный QA-IV в производственную схему.

Возвращает FileAccess

Собственный FileAccess либо null; ошибка Write не означает сохранность существовавшего файла.

OpenEncryptedWithPassFileAccess
# OpenEncryptedWithPass
C#
public static FileAccess OpenEncryptedWithPass(string path, FileAccess.ModeFlags modeFlags, string pass);

Открывает тот же FileAccess encrypted-контейнер через пароль. Текущая native реализация строит ключ из 32 символов MD5-текста пароля; это не обещание современной password-KDF, соли или отдельной аутентификации. Используйте Read/Write, проверьте null и сразу GetOpenError(). Запись финализируется только при закрытии; Flush() оставляет данные в памяти. Базовый Write уже изменяет существующий файл до завершения настройки, поэтому ошибка открытия контейнера не гарантирует сохранность назначения. Успешный password roundtrip проверен; оценка безопасности не выполнялась.

Параметры
ИмяТипПо умолчанию
pathstring—
modeFlagsFileAccess.ModeFlags—
passstring—
path

Путь файла контейнера; при Write существующее содержимое может быть потеряно до завершения настройки.

modeFlags

Для контейнера используйте только Read или Write; для CreateTemp это режим возвращаемого handle.

pass

Пароль для текущего native формата; не сырые 32 байта ключа. Не храните реальный секрет в опубликованных примерах.

Возвращает FileAccess

Собственный FileAccess либо null; проверьте GetOpenError(), учитывая раннее изменение Write-назначения.

RemoveExtendedAttributeError
# RemoveExtendedAttribute
C#
public static Error RemoveExtendedAttribute(string file, string attributeName);

Удаляет одно именованное значение/поток, не сам файл и не все атрибуты. В Windows отсутствующее имя возвращает ошибку; не считайте операцию автоматически идемпотентной. Проверяйте Error и поддержку backend; пустое значение удаляется по имени так же, как непустое.

Параметры
ИмяТипПо умолчанию
filestring—
attributeNamestring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

attributeName

Непустое имя в формате backend; Windows использует имя отдельного data stream. Не является путём основного файла.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

ResizeError
# Resize
C#
public Error Resize(long length);

Меняет длину открытого записываемого файла в байтах. Перед вызовом после записи выполните Flush(): на Windows непрочищенный output buffer может восстановить старую длину даже после Ok от Resize(). Это воспроизведено. Проверяйте Error и итоговую длину; позицию для следующей операции задайте явно. Рост с нулевым заполнением проверен только на текущей Windows-файловой системе, не является общей гарантией backend.

Параметры
ИмяТипПо умолчанию
lengthlong—
length

Новая неотрицательная длина в байтах; предварительно сбросьте output buffer.

Возвращает Error

Error изменения длины; при буферизованной записи один Ok не подтверждает итоговую длину.

Seekvoid
# Seek
C#
public void Seek(ulong position);

Устанавливает абсолютную позицию в байтах от начала открытого файла. Это не индекс символа и не усечение; перезапись короткими данными может оставить старый хвост. Результата Error нет; проверяйте допустимый диапазон заранее и результат последующего I/O. В Windows успешный seek очищает EOF indicator, но может не обновить прежний GetError().

Параметры
ИмяТипПо умолчанию
positionulong—
position

Неотрицательное абсолютное смещение в байтах от начала открытого файла.

SeekEndvoid
# SeekEnd
C#
public void SeekEnd(long position = 0);

Перемещает позицию относительно конца файла в байтах. 0 ставит в конец для append, отрицательное значение — перед концом; не уходите до начала файла. Не создаёт файл и не меняет его режим. После ReadWrite для добавления вызовите SeekEnd(), а не считайте исходную позицию концом.

Параметры
ИмяТипПо умолчанию
positionlong0
position

Смещение в байтах от конца; 0 для конца, отрицательное для позиции перед концом.

SetBigEndianvoid
# SetBigEndian
C#
public void SetBigEndian(bool bigEndian);

Настройка порядка байтов числовых Get/Store операций данного handle; false — little-endian, true — big-endian. Новый Open() даёт новый handle со стандартным false: значение не сохраняется в файл как метаданные. Не переставляет байты GetBuffer/StoreBuffer или UTF-8 текста. У StoreVar/GetVar влияет на 32-битный префикс длины, но не на внутренний Variant payload; это проверено. Читатель и писатель должны договориться о формате.

Параметры
ИмяТипПо умолчанию
bigEndianbool—
bigEndian

True для big-endian числовых полей; false для little-endian. Не определяет формат автоматически.

SetExtendedAttribute2 перегрузки
# SetExtendedAttribute · 1/2
C#
public static Error SetExtendedAttribute(string file, string attributeName, byte[] data);

Записывает именованные байты через backend; array/span overload задают одно содержимое. Windows создаёт/перезаписывает отдельный data stream, не основные байты файла. Проверяйте Error и поддержку файловой системой. Пустой массив может создать существующее имя с пустым значением; это не удаление — для удаления используйте RemoveExtendedAttribute().

Параметры
ИмяТипПо умолчанию
filestring—
attributeNamestring—
databyte[]—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

attributeName

Непустое имя в формате backend; Windows использует имя отдельного data stream. Не является путём основного файла.

data

Байты именованного значения; пустой буфер не означает удаление.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

# SetExtendedAttribute · 2/2
C#
public static Error SetExtendedAttribute(string file, string attributeName, ReadOnlySpan<byte> data);

Записывает именованные байты через backend; array/span overload задают одно содержимое. Windows создаёт/перезаписывает отдельный data stream, не основные байты файла. Проверяйте Error и поддержку файловой системой. Пустой массив может создать существующее имя с пустым значением; это не удаление — для удаления используйте RemoveExtendedAttribute().

Параметры
ИмяТипПо умолчанию
filestring—
attributeNamestring—
dataReadOnlySpan<byte>—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

attributeName

Непустое имя в формате backend; Windows использует имя отдельного data stream. Не является путём основного файла.

data

Байты именованного значения; пустой буфер не означает удаление.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

SetExtendedAttributeStringError
# SetExtendedAttributeString
C#
public static Error SetExtendedAttributeString(string file, string attributeName, string data);

Кодирует строку как UTF-8 и передаёт байты в backend атрибутов. Текущая реализация включает завершающий NUL; это подтверждено при чтении raw bytes в Windows. Для внешнего формата с точными байтами используйте SetExtendedAttribute() с явно выбранной кодировкой/терминатором. Проверяйте Error; это не запись в основной файл.

Параметры
ИмяТипПо умолчанию
filestring—
attributeNamestring—
datastring—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

attributeName

Непустое имя в формате backend; Windows использует имя отдельного data stream. Не является путём основного файла.

data

Строка для UTF-8 записи; текущая реализация добавляет NUL к raw bytes.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

SetHiddenAttributeError
# SetHiddenAttribute
C#
public static Error SetHiddenAttribute(string file, bool hidden);

Меняет hidden-атрибут через backend; проверяйте возвращённый Error. На Windows меняется соответствующий бит с сохранением других атрибутов. Не создаёт файл и не защищает содержимое от чтения. Поддержка ОС/файловой системы и packed-ресурсов различается; unavailable/failure не следует считать успешной установкой.

Параметры
ИмяТипПо умолчанию
filestring—
hiddenbool—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

hidden

True устанавливает hidden, false снимает; это не ограничение доступа.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

SetReadOnlyAttributeError
# SetReadOnlyAttribute
C#
public static Error SetReadOnlyAttribute(string file, bool ro);

Устанавливает/снимает backend read-only атрибут; в Windows меняет один бит, сохраняя остальные. Не эквивалентен настройке всех разрешений/ACL и не гарантирует обратную операцию при изменении прав окружения. Проверяйте Error; packed-данные могут быть недоступны для такой операции.

Параметры
ИмяТипПо умолчанию
filestring—
robool—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

ro

True устанавливает read-only атрибут, false снимает; не заменяет ACL.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

SetUnixPermissionsError
# SetUnixPermissions
C#
public static Error SetUnixPermissions(string file, FileAccess.UnixPermissionFlags permissions);

Запрашивает изменение Unix permission bits. В проверенном Windows backend возвращает Error.Unavailable, не изменяя ACL. Packed-данные также недоступны для установки. Проверяйте Error; успешность другого атрибутного API не подтверждает поддержку chmod. Unix-платформы в этом проходе не выполнялись.

Параметры
ИмяТипПо умолчанию
filestring—
permissionsFileAccess.UnixPermissionFlags—
file

Путь конкретного файла/объекта; asset://, user:// или допустимый OS path с учётом поддержки backend.

permissions

Unix permission bits; Windows backend здесь возвращает Unavailable.

Возвращает Error

Error backend операции; проверяйте Ok, Unavailable и другие ошибки.

Store16bool
# Store16
C#
public bool Store16(ushort value);

Записывает беззнаковое 16-битное число ровно в 2 байт текущей позиции, без метки типа или длины. Порядок байтов задаёт BigEndian этого handle; по умолчанию little-endian. Читатель должен заранее знать формат и использовать Get16(). Проверяйте bool; запись не является атомарной и не гарантирует сброс на носитель.

Параметры
ИмяТипПо умолчанию
valueushort—
value

Беззнаковое 16-битное значение. Проверяйте диапазон до явного преобразования из более широкого/знакового типа.

Возвращает bool

Bool результата записи всех байт числа; не гарантия долговременного хранения.

Store32bool
# Store32
C#
public bool Store32(uint value);

Записывает беззнаковое 32-битное число ровно в 4 байт текущей позиции, без метки типа или длины. Порядок байтов задаёт BigEndian этого handle; по умолчанию little-endian. Читатель должен заранее знать формат и использовать Get32(). Проверяйте bool; запись не является атомарной и не гарантирует сброс на носитель.

Параметры
ИмяТипПо умолчанию
valueuint—
value

Беззнаковое 32-битное значение. Проверяйте диапазон до явного преобразования из более широкого/знакового типа.

Возвращает bool

Bool результата записи всех байт числа; не гарантия долговременного хранения.

Store64bool
# Store64
C#
public bool Store64(ulong value);

Записывает беззнаковое 64-битное число ровно в 8 байт текущей позиции, без метки типа или длины. Порядок байтов задаёт BigEndian этого handle; по умолчанию little-endian. Читатель должен заранее знать формат и использовать Get64(). Проверяйте bool; запись не является атомарной и не гарантирует сброс на носитель.

Параметры
ИмяТипПо умолчанию
valueulong—
value

Беззнаковое 64-битное значение. Проверяйте диапазон до явного преобразования из более широкого/знакового типа.

Возвращает bool

Bool результата записи всех байт числа; не гарантия долговременного хранения.

Store8bool
# Store8
C#
public bool Store8(byte value);

Записывает беззнаковое 8-битное число ровно в 1 байт текущей позиции, без метки типа или длины. Для одного байта BigEndian ничего не меняет. Читатель должен заранее знать формат и использовать Get8(). Проверяйте bool; запись не является атомарной и не гарантирует сброс на носитель.

Параметры
ИмяТипПо умолчанию
valuebyte—
value

Беззнаковое 8-битное значение. Проверяйте диапазон до явного преобразования из более широкого/знакового типа.

Возвращает bool

Bool результата записи всех байт числа; не гарантия долговременного хранения.

StoreBuffer2 перегрузки
# StoreBuffer · 1/2
C#
public bool StoreBuffer(byte[] buffer);

Записывает переданные байты с текущей позиции, без преобразования текста, размера или byte-order. Array/span overload выполняют ту же запись. Не создаёт родителей, не усекает оставшийся старый хвост и не обещает атомарность. Проверяйте bool и статус; для записи после чтения используйте подходящий ReadWrite/WriteRead режим.

Параметры
ИмяТипПо умолчанию
bufferbyte[]—
buffer

Байты для записи целиком с текущей позиции; буфер не является сериализованным объектом автоматически.

Возвращает bool

Bool результата записи всех переданных байт на уровне backend.

# StoreBuffer · 2/2
C#
public bool StoreBuffer(ReadOnlySpan<byte> buffer);

Записывает переданные байты с текущей позиции, без преобразования текста, размера или byte-order. Array/span overload выполняют ту же запись. Не создаёт родителей, не усекает оставшийся старый хвост и не обещает атомарность. Проверяйте bool и статус; для записи после чтения используйте подходящий ReadWrite/WriteRead режим.

Параметры
ИмяТипПо умолчанию
bufferReadOnlySpan<byte>—
buffer

Байты для записи целиком с текущей позиции; буфер не является сериализованным объектом автоматически.

Возвращает bool

Bool результата записи всех переданных байт на уровне backend.

StoreCsvLine2 перегрузки
# StoreCsvLine · 1/2
C#
public bool StoreCsvLine(ReadOnlySpan<string> values, string delim);

Пишет CSV-запись и один LF. Поля с разделителем, кавычкой или LF заключаются в кавычки; кавычки удваиваются. В текущей реализации одиночный CR сам по себе не включает quoting: поле с CR может распасться на две записи при чтении, что воспроизведено. Если нужны переносы внутри поля, заранее нормализуйте CRLF/CR в LF; это меняет исходные переводы строк. Для парного GetCsvLine() используйте один разделитель, отличный от двойной кавычки. Array/span overloads имеют одинаковый формат; проверяйте bool.

Параметры
ИмяТипПо умолчанию
valuesReadOnlySpan<string>—
delimstring—
values

Поля записи; CRLF/CR заранее нормализуйте при выбранной политике текста, иначе одиночный CR может сломать roundtrip.

delim

Один символ разделителя, отличный от двойной кавычки для парного чтения/записи. Не многосимвольная строка.

Возвращает bool

Bool записи сформированной строки и LF; не подтверждает точный roundtrip одиночных CR.

# StoreCsvLine · 2/2
C#
public bool StoreCsvLine(string[] values, string delim = ",");

Пишет CSV-запись и один LF. Поля с разделителем, кавычкой или LF заключаются в кавычки; кавычки удваиваются. В текущей реализации одиночный CR сам по себе не включает quoting: поле с CR может распасться на две записи при чтении, что воспроизведено. Если нужны переносы внутри поля, заранее нормализуйте CRLF/CR в LF; это меняет исходные переводы строк. Для парного GetCsvLine() используйте один разделитель, отличный от двойной кавычки. Array/span overloads имеют одинаковый формат; проверяйте bool.

Параметры
ИмяТипПо умолчанию
valuesstring[]—
delimstring","
values

Поля записи; CRLF/CR заранее нормализуйте при выбранной политике текста, иначе одиночный CR может сломать roundtrip.

delim

Один символ разделителя, отличный от двойной кавычки для парного чтения/записи. Не многосимвольная строка.

Возвращает bool

Bool записи сформированной строки и LF; не подтверждает точный roundtrip одиночных CR.

StoreDoublebool
# StoreDouble
C#
public bool StoreDouble(double value);

Кодирует число как Double в 8 байт с выбранным BigEndian; без текстового представления или метки типа. Метод не проверяет конечность или допустимый диапазон для игровой логики. Используйте парный GetDouble() с тем же форматом; проверяйте bool записи.

Параметры
ИмяТипПо умолчанию
valuedouble—
value

Число для выбранной двоичной точности; допустимость для вашей модели данных проверяется вызывающим.

Возвращает bool

Bool результата кодирования/записи на уровне backend.

StoreFloatbool
# StoreFloat
C#
public bool StoreFloat(float value);

Кодирует число как Float в 4 байт с выбранным BigEndian; без текстового представления или метки типа. Метод не проверяет конечность или допустимый диапазон для игровой логики. Используйте парный GetFloat() с тем же форматом; проверяйте bool записи.

Параметры
ИмяТипПо умолчанию
valuefloat—
value

Число для выбранной двоичной точности; допустимость для вашей модели данных проверяется вызывающим.

Возвращает bool

Bool результата кодирования/записи на уровне backend.

StoreHalfbool
# StoreHalf
C#
public bool StoreHalf(float value);

Кодирует число как Half в 2 байт с выбранным BigEndian; без текстового представления или метки типа. Half теряет точность исходного float: это 16-битное хранение, не 32-битное. Используйте парный GetHalf() с тем же форматом; проверяйте bool записи.

Параметры
ИмяТипПо умолчанию
valuefloat—
value

Число для выбранной двоичной точности; допустимость для вашей модели данных проверяется вызывающим.

Возвращает bool

Bool результата кодирования/записи на уровне backend.

StoreLinebool
# StoreLine
C#
public bool StoreLine(string line);

Записывает строку как UTF-8 и добавляет один LF (байт 0x0A), не платформенный CRLF. Существующий перевод строки в аргументе не удаляется. Возвращает bool общего результата; позиция растёт на число UTF-8 байт плюс LF. Правила перезаписи и сохранности те же, что у StoreString().

Параметры
ИмяТипПо умолчанию
linestring—
line

Текст строки; метод дополнительно запишет один LF.

Возвращает bool

True только при успешной записи строки и добавленного LF на уровне backend.

StorePascalStringbool
# StorePascalString
C#
public bool StorePascalString(string @string);

Пишет 32-битную длину UTF-8 в байтах, затем сами байты строки. Это не однобайтовый Pascal length и не число C# символов. Префикс использует BigEndian; payload остаётся UTF-8. Читайте через GetPascalString() с тем же порядком байтов и заранее установленным пределом записи; проверяйте bool.

Параметры
ИмяТипПо умолчанию
stringstring—
string

Текст для UTF-8; префикс содержит размер кодировки, не string.Length.

Возвращает bool

Bool общего результата записи длины и UTF-8 байт.

StoreRealbool
# StoreReal
C#
public bool StoreReal(float value);

Ширина записи native real зависит от precision сборки: исходники выбирают StoreFloat или StoreDouble по sizeof(real_t). В установленном build подтверждены 4 байта; другая precision здесь не проверена. Для внешнего формата с постоянной шириной выберите StoreFloat()/StoreDouble() явно. BigEndian учитывается; bool не подтверждает сохранность на носителе.

Параметры
ИмяТипПо умолчанию
valuefloat—
value

Число в типе real текущего SDK; не поле с автоматически переносимой точностью.

Возвращает bool

Bool записи native real выбранной сборкой.

StoreStringbool
# StoreString
C#
public bool StoreString(string @string);

Записывает UTF-8 байты строки с текущей позиции, без автоматического LF или длины. Позиция измеряется в байтах. Не усекает старый хвост при короткой перезаписи; выберите Write/WriteRead либо контролируемое Resize(). Проверяйте bool и GetError(); true не гарантирует сброс на носитель или атомарное сохранение.

Параметры
ИмяТипПо умолчанию
stringstring—
string

Текст для UTF-8 записи без автоматического перевода строки.

Возвращает bool

Bool результата записи; не гарантия долговременного хранения.

StoreVarbool
# StoreVar
C#
public bool StoreVar(Variant value, bool fullObjects = false);

Сериализует Variant в native binary payload и записывает 32-битную длину перед ним. Это формат пары StoreVar/GetVar, не JSON, не префаб и не снимок всего уровня. BigEndian меняет префикс длины, не внутренние байты payload. По умолчанию fullObjects=false; полная объектная сериализация не выполнялась. Метод не забирает владение входным Variant. Для сохранений задайте собственную версию и схему, проверяйте bool записи и типы при загрузке.

Параметры
ИмяТипПо умолчанию
valueVariant—
fullObjectsboolfalse
value

Variant для записи; владение остаётся у вызывающего. Ссылки на игровые объекты не становятся постоянными ID автоматически.

fullObjects

По умолчанию false. True включает полное представление объектов, не автоматическое сохранение уровня; этот режим здесь не проверен.

Возвращает bool

Bool записи длины и Variant payload; не гарантия атомарного сохранения или совместимости схем.

FileAccess.CompressionMode

ЗначениеОписание
Brotli = 4

Использует метод сжатия brotli (поддерживается только распаковка).

Deflate = 1

Использует метод сжатия DEFLATE(https://en.wikipedia.org/wiki/DEFLATE).

Fastlz = 0

Использует метод сжатия FastLZ(https://fastlz.org/).

GZip = 3

Использует метод сжатия gzip.

Zstd = 2

Использует метод сжатия Zstandard(https://facebook.github.io/zstd/).

FileAccess.ModeFlags

ЗначениеОписание
Read = 1

Открывает файл для чтения. Курсор файла устанавливается в начало файла.

ПИСЬ

ReadWrite = 3

Открывает файл для чтения и записи. Не обрезает файл. Курсор файла устанавливается в начало файла.

Write = 2

Открывает файл для операций записи. Если файл существует, он усекается до нулевой длины, а его содержимое очищается. В противном случае он создается. Примечание: При создании файла он должен находиться в уже существующем каталоге. Для рекурсивного создания каталогов для пути к файлу см. DirAccess.MakeDirRecursive.

ЧИТАЙТЕ

WriteRead = 7

Открывает файл для операций чтения и записи. Если файл существует, он обрезается до нулевой длины, а его содержимое очищается. В противном случае он создается. Курсор файла располагается в начале файла. Примечание: При создании файла он должен находиться в уже существующем каталоге. Для рекурсивного создания каталогов для пути к файлу см. DirAccess.MakeDirRecursive.

FileAccess.UnixPermissionFlags

ЗначениеОписание
ExecuteGroup = 8

Выполнить для группового бита.

ExecuteOther = 1

Выполнить для другого бита.

ExecuteOwner = 64

Выполнить для владельца бита.

ReadGroup = 32

Прочитайте для группового бита.

ReadOther = 4

Прочтите другой бит.

ReadOwner = 256

Прочитайте информацию о владельце.

RestrictedDelete = 512

Бит ограниченного удаления (прикрепленный).

SetGroupId = 1024

Установить идентификатор группы при выполнении бита.

SetUserId = 2048

Установить идентификатор пользователя при выполнении бита.

WriteGroup = 16

Пишите для группового бита.

WriteOther = 2

Напишите для другого бита.

WriteOwner = 128

Напишите для владельца бита.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.