Статьи

Документация

Дополнительно

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

Модуль stappler_filesystem предоставляет интерфейсы для работы с путями файлов (SPFilepath.h) и операции с файловой системой (SPFilesystem.h).

Система предполагает, что файловые пути будут представлены в формате POSIX. Для Windows предполагается формат путей cygwin (cygpath -u).

SDK определяет набор каноничных префиксов для долгосрочного хранения путей с учётом возможности потенциального переноса исполняемого пакета приложения:

  • %CACHE% — для файлов кеша
  • %DOCUMENTS% — для постоянно хранимых документов
  • %WRITEABLE% — для директории с возможностью беспрепятственной записи
  • %CURRENT% — для текущей директории
  • %PLATFORM% — для платформозависимой директории, соотвествующей исполняемому пакету

Список операций с файловыми путями:

  • isAbsolute — проверяет, является ли путь абсолютным
  • isCanonical — проверяет, определён ли путь как канонический
  • isBundled — проверяет, находится ли путь внутри приватной директории приложения
  • isAboveRoot — проверяет, не выходит ли путь выше корневой директории
  • validatePath — проверяет, содержит ли путь излишние переходы внутри директорий
  • reconstructPath — приводит путь к окончательному виду, убирая переходы на уровень выше и внутри уровня
  • absolute — приводит путь к абсолютному виду
  • canonical — приводит путь к каноническому виду, если это возможно
  • root — возвращает путь на один уровень выше текущего
  • lastComponent — возвращает последний компонент пути
  • fullExtension — возвращает полное расширение имени файла
  • lastExtension — возвращает последнее расширение имени файла
  • name — возвращает имя файла без расширения
  • split — разделяет путь на компоненты
  • merge — создаёт путь из разделённых компонентов
  • replace — подменяет часть корневого пути пути

Операции с файловой системой определены в нескольких пространствах имён. Пространство имён stappler::filesystem соответствует общедоступным функциям, stappler::filesystem::native — прямому доступу к функциям файловой системы текущей платформы, stappler::filesystem::platform — функциям виртуальной файловой системы, предоставляемой платформой для пакета приложения. Только функции из stappler::filesystem можно считать стабильными.

Общие функции файловой системы унифицировано работают и с реальными путями, и с путями внутри виртуальной файловой системы.

Список основных функций:

  • exists — проверяет файл на существование
  • stat — получает метаданные файла
  • mkdir — создаёт директорию
  • mkdir_recursive — создаёт директории рекурсивно
  • touch — обновляет время доступа к файлу
  • move — перемещает файл (копирует и удаляет исходный в случае невозможности)
  • copy — копирует файл
  • remove — удаляет файл или директорию
  • ftw — обходит дерево файлов
  • writablePath — возвращает путь к возможному для записи файлу на основе имени
  • documentsPath — возвращает путь к файлу-документу на основе имени
  • cachesPath — возвраает путь к файлу кеша на основе имени
  • currentDir — возвращает текущую рабочую директорию
  • write — записывает данные по файловому пути
  • readWithConsumer — читает данные по файловому пути, используя универсаньный интерфейс потребителя
  • readIntoMemory — читает файл в память