Application.persistentDataPath
Declaration
public static string persistentDataPath;Описание
Содержит путь к каталогу постоянных данных (только для чтения).
Это значение представляет собой путь к каталогу, в котором можно хранить данные, которые нужно сохранить между запусками. При публикации на iOS и Android, persistentDataPath указывает на общедоступный каталог на устройстве. Файлы могут быть удалены только самим пользователем, но не обновлениями приложения.
Примечание: Различные косые черты указывают на разные операционные системы в соответствии с Path.DirectorySeparatorChar.
При сборке приложения Unity генерируется GUID, основанный на идентификаторе пакета. Этот GUID является частью persistentDataPath. Если в будущих версиях сохранить один и тот же идентификатор пакета, приложение будет получать доступ к одному и тому же расположению при каждом обновлении.
UWP приложения: Application.persistentDataPath пункты к C:\Users\<user>\AppData\LocalLow\<company name>.
Windows Редактор и Windows Игрок: Application.persistentDataPath обычно указывает на %userprofile%\AppData\LocalLow\<companyname>\<productname>. Решается путем SHGetKnownFolderPath с FOLDERID_LocalAppDataLow, или SHGetFolderPathW с CSIDL_LOCAL_APPDATA, если первый не доступен.
Веб: Application.persistentDataPath указывает на местоположение в файловой системе браузера IndexedDB. Путь формируется следующим образом: /idbfs/<hash>где <hash> это хэш MD5, генерируемый из URL каталога, содержащего веб-страницу приложения. Имя конкретного файла (например: index.html) и любые параметры запроса URL не изменяют путь постоянных данных.
Linux: Application.persistentDataPath пункты к $XDG_CONFIG_HOME/unity3d/Company/ProjectNameгде $XDG_CONFIG_HOME по умолчанию до ~/.config. Например: ~/.config/unity3d/CompanyName/ProductName.
iOS: Application.persistentDataPath пункты к /var/mobile/Containers/Data/Application/<guid>/Documents.
tvOS: Application.persistentDataPath не поддерживается и возвращает пустую строку.
Android: Application.persistentDataPath пункты к /storage/emulated/<userid>/Android/data/<packagename>/files на большинстве устройств (некоторые старые телефоны могут указывать на местоположение на SD карту, если присутствует), путь разрешается с помощью android.content.Context.getExternalFilesDir.
macOS Редактор: Application.persistentDataPath пункты к ~/Library/Application Support/company name/product name.
macOS Игрок: Application.persistentDataPath пункты к ~/Library/Application Support/unity.company name.product name, но использует путь Редактор, если этот каталог уже существует.
Сохранение файлов в этот путь: Некоторые Unity APIs (например, ScreenCapture.CaptureScreenshot) интерпретировать относительные пути относительно каталога проекта на редакторе Windows и других немобильных платформах, а не относительно persistentDataPath. Поэтому скриншоты или другие файлы, сохраненные с относительным путем, оказываются в папке проекта, а не в AppData/LocalLow на Windows. Чтобы сохранить файлы в постоянный путь данных, передайте полный путь: System.IO.Path.Combine(Application.persistentDataPath, "filename.png").
using UnityEngine;
public class Info : MonoBehaviour { void Start() { Debug.Log(Application.persistentDataPath); } }