Répertoires en écriture¶
Le confinement des applications fait partie du concept de sécurité d’Ubuntu Touch. Les données peuvent être échangées entre les applications en fonction des politiques AppArmor, principalement en utilisant le centre de contenus. Cela dit, les applications peuvent uniquement lire et écrire sur des fichiers qui sont situés dans l’un des trois répertoires spécifiques expliqués dans ce guide.
Chemins standards¶
Besides the write access to the app directories explained below, the app can write debug messages into the app log file located at /home/phablet/.cache/upstart/application-click-<fullappname>_<appname>_<version>.log. To append messages to the log file, use the Qt debug functions.
Configuration¶
Chemin : /home/phablet/.config/<nomcompletdelapplication>/
Il s’agit de l’endroit où sont stockés les fichiers de configuration. L’application Musique stocke par exemple sa configuration dans /home/phablet/.config/com.ubuntu.music/com.ubuntu.music.conf.
Cache¶
Chemin : /home/phablet/.cache/<nomcompletdelapplication>/
Il s’agit de l’endroit dans lequel mettre des données en cache pour une utilisation ultérieure. Le cache est également utilisé par le contre de contenus. Les fichiers qui ont été partagés avec l’application Musique peuvent par exemple être retrouvés dans /home/phablet/.cache/com.ubuntu.music/HubIncoming/.
Note
Les données contenues dans le répertoire cache doivent être considérées comme temporaires et l’application doit continuer à fonctionner normalement si ce répertoire est effacé. L’effacement du cache est généralement effectué pour récupérer de l’espace sur l’appareil. Ne stockez pas d’informations sur le compte de l’utilisateur dans ce répertoire
Données de l’application¶
Chemin : /home/phablet/.local/share/<nomcompletdelapplication>/
Il s’agit de l’endroit où votre application stocke toute ses données. L’application Musique stocke par exemple ses bases de données sous /home/phablet/.local/share/com.ubuntu.music/Databases/.
Utilisation des chemins standards en C++¶
L’en-tête Qt QStandardPaths indique les emplacements en écriture de l’application :
#include <QStandardPaths>
...
QString configPath = QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);
QString cachePath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation);
QString appDataPath = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
...
Puisque la valeur des chaînes QStandardPaths est décidée par le nom de l’application Qt, celui-ci doit être le même que le nom de l’application cliquable.
Avertissement
La définition de organizationName modifiera également les chemins renvoyés par ces fonctions - si vous devez le faire, définissez également le nom de l’application cliquable, sinon les chemins ne fonctionneront pas sur l’appareil.
Utilisation des chemins standards en QML¶
Le module Qt Qt.labs.platform fournit les emplacements accessibles en écriture pour l’application en QML :
import Qt.labs.platform 1.0
...
Label
{
text: StandardPaths.writableLocation(StandardPaths.AppConfigLocation)
}
Label
{
text: StandardPaths.writableLocation(StandardPaths.CacheLocation)
}
Label
{
text: StandardPaths.writableLocation(StandardPaths.AppDataLocation)
}
...
Notez que QStandardPaths retourne des chemins ('/phablet/home/...'), et que QML StandardPaths retourne des urls ('file:///phablet/home/...'). Ceci doit être pris en compte spécialement si l’application partage des chaînes de localisation entre QML et C++.