Répertoires de bac à sable de l’application
Utilisez Documents, Caches et les emplacements temporaires.
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é.
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
- URL et chemins de fichiers
- Lecture et écriture de données
- Gestion des répertoires
- Répertoires de bac à sable de l’application