Перейти к основному содержимому

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

Описание

Интерфейс файловой системы представлен классом IFileSystem. Что бы получить текущий экземпляр класса файловой системы нужно вызвать метод getFileSystem() у интерфейса IXCore.

Информация

Заголовочный файл:#include "IFileSystem"
Наследуется от:IXUnknown
Наследуется в:CFileSystem

Публичные методы

Методы

virtual UINT addRoot(const char* szPath, int iPriority = -1) = 0;
virtual UINT getRootCount() = 0 const;
virtual const char* getRoot(UINT id) = 0 const;

Корневые пути

Для удобной работы с файлами класс файловой системы работает с корневыми путями. Корневые пути вычисляются на основе местоположения папки build в каталоге сборки. Однако корневой путь может быть и абсолютным. У корневых путей есть свой приоритет, чем он выше (больше число) тем раньше путь будет использоваться. Для работы с корневыми путями используются методы: addRoot, getRootCount, getRoot.

UINT IFileSystem::addRoot(const char *szPath, int iPriority = -1) [чисто виртуальная]

Метод addRoot предназначен для добавления корневых путей в файловую систему. Добавить можно относительный и абсолютный путь. При добавлении корневого пути можно указать приоритет. Если приоритет -1 (по умолчанию) то корень добавленный с приоритетом по умолчанию получит наивысший приоритет среди уже добавленных корней.

Метод не потокобезопасен. Исключений не выбрасывает.

UINT IFileSystem::getRootCount() [чисто виртуальная]

Метод getRootCount возвращает количество уже добавленных корней.

const char *IFileSystem::getRoot(UINT id) [чисто виртуальная]

Метод getRoot возвращает корневой путь по id. Возвращает абсолютный путь, даже если путь с этим id был добавлен как относительный. Пример:

UINT id = pFS->addRoot("fs_test");
const char *szPath = pFS->getRoot(id);
std::cout << szPath << std::endl;

Вывод:

E:/engine/build/fs_test 

void IFileSystem::setWritableRoot(UINT id) [чисто виртуальная]

Метод setWritableRoot устанавливает корневой путь путем для записи. По этому пути будут осуществляться все операции создания файлов. Путь для записи может быть только один, если явно не задан - используется первый добавленный путь, не являющийся архивом.