Swift Academy · Leçon

Répertoires de bac à sable de l’application

Utilisez Documents, Caches et les emplacements temporaires.

Leçon 4 sur 413 étapes

Répertoires de bac à sable de l’application est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 4 leçons au total.

Répertoires du bac à sable de l’App

Les applications s’exécutent dans un bac à sable : elles ne peuvent écrire que dans leur propre conteneur. Des répertoires standard existent pour les documents, les caches et les fichiers temporaires.

Localiser le répertoire Documents

FileManager.urls(for:in:) renvoie les URL correspondant à un répertoire connu. .documentDirectory contient les données utilisateur qui doivent être sauvegardées.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")

Créer des URL de fichiers

Ajoutez un nom de fichier à l’URL du répertoire pour obtenir le chemin complet de vos propres fichiers.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let file = docs.appendingPathComponent("profile.json")
print(file.lastPathComponent)

Le répertoire des caches

.cachesDirectory stocke les données que vous pouvez régénérer. Le système peut le purger lorsque l’espace disque est insuffisant ; n’y conservez donc jamais de données irremplaçables.

import Foundation

let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")

Le répertoire temporaire

FileManager.default.temporaryDirectory fournit un espace de travail temporaire pour les fichiers de courte durée que vous devez supprimer vous-même.

import Foundation

let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")

Documents, caches et fichiers temporaires

Utilisez Documents pour les données créées par l’utilisateur (sauvegardées), Caches pour les données reproductibles et tmp pour les fichiers temporaires.

import Foundation

// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")

Données d’assistance de l’application

.applicationSupportDirectory contient les données gérées par l’app qui ne sont pas directement destinées à l’utilisateur, comme les bases de données. Vous le créez souvent lors du premier lancement.

import Foundation

let fm = FileManager.default
let support = fm.urls(for: .applicationSupportDirectory, in: .userDomainMask).first!
try? fm.createDirectory(at: support, withIntermediateDirectories: true)
print("Ensured Application Support exists")

Enregistrer dans Documents

Associez l’URL du répertoire à un appel d’écriture pour conserver les données utilisateur dans le bac à sable.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
try? "hello".write(to: url, atomically: true, encoding: .utf8)
print("Saved into Documents")

Relire les données

Lisez les fichiers du bac à sable comme n’importe quel fichier identifié par une URL, car le chemin est entièrement valide dans le conteneur.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
    print(text)
}

Exclure des sauvegardes

Définissez la valeur de ressource isExcludedFromBackup pour les fichiers volumineux et régénérables afin qu’ils n’alourdissent pas les sauvegardes iCloud.

import Foundation

var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")

Pourquoi le bac à sable est important

Les chemins du bac à sable varient selon l’installation et l’appareil : ne les inscrivez donc jamais en dur. Résolvez toujours les répertoires à l’exécution avec FileManager.

import Foundation

// Never hardcode /var/mobile/... — resolve at runtime instead.
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Resolved Documents dynamically: \(!docs.path.isEmpty)")

Vérification rapide

Quel répertoire doit contenir les données utilisateur qui doivent être sauvegardées ?

Récapitulatif

Les applications stockent leurs fichiers dans des répertoires du bac à sable résolus via FileManager.urls(for:in:) : Documents pour les données utilisateur sauvegardées, Caches pour les données régénérables, tmp pour les fichiers temporaires, ainsi que les données d’assistance de l’application. Résolvez les chemins à l’exécution, ne les inscrivez jamais en dur. Le cours sur les entrées-sorties de fichiers est maintenant terminé.

Gratuit pour commencer

Apprends Swift avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
122
Leçons
409

Questions Fréquemment Posées

La leçon « Répertoires de bac à sable de l’application » est-elle gratuite ?

Oui — le texte complet de « Répertoires de bac à sable de l’application » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Répertoires de bac à sable de l’application » ?

Utilisez Documents, Caches et les emplacements temporaires. Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Swift Academy ?

Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Répertoires de bac à sable de l’application » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?

Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. URL et chemins de fichiers
  2. Lecture et écriture de données
  3. Gestion des répertoires
  4. Répertoires de bac à sable de l’application
← Retour à Swift Academy