FileSystem

Namespace: Vortex.Unity.FileSystem.Bus Сборка: ru.vortex.unity.filesystem

Назначение

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

Возможности:

  • Автоматическое определение пути хранения при старте приложения
  • В редакторе — папка _OutputFiles рядом с корнем проекта
  • На устройстве — Application.persistentDataPath
  • Создание директорий по произвольному пути

Вне ответственности:

  • Чтение и запись файлов
  • Управление правами доступа
  • Разрешение платформенных путей (кроме GetAppPath)

Зависимости

Нет внешних зависимостей. Сборка автономна.


Архитектура

FileSystem/
├── Bus/
│   └── FileBus.cs                 # Статический API: GetAppPath(), CreateFolders()
└── Controllers/
    └── AndroidPathResolver.cs     # [Obsolete] Android-интероп (не используется)

FileBus (статический класс)

Шина доступа к файловой системе. Инициализируется автоматически через [RuntimeInitializeOnLoadMethod].

Определение пути:

  • В редакторе: берёт Application.dataPath, отбрасывает последний компонент, заменяет его на _OutputFiles
  • На устройстве: Application.persistentDataPath

Путь вычисляется один раз и кэшируется в _path. При вызове GetAppPath() до инициализации — ленивая инициализация.

AndroidPathResolver (internal, Obsolete)

Помечен [Obsolete]. Код полностью закомментирован. Не используется.


API

Метод Сигнатура Описание
FileBus.GetAppPath() public static string Путь к директории вывода (кэшированный)
FileBus.CreateFolders(directory) public static void Создаёт директорию, если не существует

Платформенное поведение

Платформа Путь
Редактор (все платформы) {ProjectRoot}/_OutputFiles
Устройство (все платформы) Application.persistentDataPath

Граничные случаи

Ситуация Поведение
GetAppPath() до инициализации Ленивая инициализация при первом вызове
_path остался null после инициализации Возвращает пустую строку
CreateFolders() — директория существует Идемпотентно, ничего не происходит
CreateFolders() — вложенные директории Directory.CreateDirectory создаёт всю цепочку