Файловая система
Описание
Интерфейс файловой системы представлен классом 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
устанавливает корневой путь путем для записи.
По этому пути будут осуществляться все операции создания файлов.
Путь для записи может быть только один, если явно не задан -
используется первый добавленный путь, не являющийся архивом.