Documents Directory : qu'est-ce que c'est, objectif et accès aux fichiers

Auteur : IT Sectr Publié le : 2026-07-10 Temps de lecture : 10 min

Documents Directory est un répertoire dans le sandbox d'une application iOS conçu pour stocker les données utilisateur qui doivent persister entre les sessions de l'application et être accessibles à l'utilisateur via iTunes File Sharing et iCloud. Selon Apple File System Programming Guide (2024), le contenu de ce répertoire est automatiquement inclus dans les sauvegardes iCloud et iTunes, le développeur doit donc choisir consciemment quelles données placer dans Documents. Contrairement à Caches Directory, les fichiers dans Documents ne sont pas supprimés par le système lorsque l'espace est insuffisant — la responsabilité de la gestion de la taille incombe à l'application.

Points clés

  • Documents Directory est le répertoire principal pour les fichiers utilisateur qui doivent persister et être accessibles via iTunes.
  • Les données de Documents sont automatiquement sauvegardées sur iCloud et iTunes — tenez-en compte lors de la conception de votre stockage.
  • Le système ne supprime pas les fichiers de Documents lors du vidage du cache — le développeur est responsable de la libération d'espace.
  • Le chemin vers le répertoire est obtenu via NSSearchPathForDirectoriesInDomains avec NSDocumentDirectory ou via FileManager.urls.
  • Pour les fichiers volumineux qui peuvent être récupérés, utilisez Caches Directory — pour ne pas gaspiller d'espace dans la sauvegarde iCloud.

Qu'est-ce que Documents Directory sous iOS ?

Documents Directory est un répertoire dans le sandbox d'une application iOS conçu pour stocker les données utilisateur qui doivent persister entre les lancements et être accessibles à l'utilisateur. Chaque application reçoit son propre sandbox isolé, et Documents est l'un des répertoires clés aux côtés de Caches, tmp et Library.

iOS utilise un sandbox strict : une application n'a pas accès au système de fichiers des autres applications ni aux répertoires système sans autorisations spéciales. Documents Directory est le seul répertoire dont l'utilisateur peut visualiser le contenu via iTunes File Sharing (lorsque la clé UIFileSharingEnabled est activée dans Info.plist).

Selon Apple WWDC 2023, plus de 85% des applications de l'App Store utilisent Documents Directory pour stocker au moins un type de données utilisateur — des PDF exportés aux fichiers de jeu sauvegardés et images exportées.

Il est important que le développeur comprenne : les fichiers dans Documents sont automatiquement inclus dans les sauvegardes iCloud et iTunes. Si une application stocke de gros volumes de données récupérables dans Documents (par exemple, le cache d'images ou des fichiers temporaires), cela entraîne une consommation inutile de l'espace de stockage iCloud de l'utilisateur.

Comment obtenir le chemin vers Documents Directory

En Swift, le chemin vers Documents Directory est obtenu via FileManager. Apple recommande d'utiliser l'API basée sur URL plutôt que celle basée sur les chaînes pour une meilleure compatibilité avec les fonctionnalités modernes d'iOS.

swift
import Foundation

let fileManager = FileManager.default
guard let documentsURL = fileManager.urls(
    for: .documentDirectory,
    in: .userDomainMask
).first else { return }

// Créer un fichier dans Documents
let fileURL = documentsURL.appendingPathComponent("report.pdf")
let data = Data("Hello, world!".utf8)
try data.write(to: fileURL)

Objective-C utilise NSSearchPathForDirectoriesInDomains — une approche plus ancienne mais toujours prise en charge qui renvoie un chemin de chaîne au lieu d'une URL.

objective-c
@import Foundation;

NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory,
    NSUserDomainMask,
    YES
);
NSString *documentsPath = paths.firstObject;
NSString *filePath = [documentsPath stringByAppendingPathComponent:@"report.pdf"];

Les projets modernes en Swift doivent utiliser FileManager.urls, car cette méthode renvoie une URL plutôt qu'une chaîne, ce qui réduit le risque d'erreurs d'encodage de chemin et rend le code plus sûr au niveau des types.

Quelles données stocker dans Documents

Documents Directory est destiné aux données créées par l'utilisateur ou explicitement nécessaires à l'utilisateur. Apple met en évidence plusieurs catégories appropriées pour ce répertoire.

Documents et fichiers utilisateur

Fichiers que l'utilisateur crée ou importe — documents texte, PDF, images, rapports exportés, fichiers de sauvegarde. Ces données ont une valeur directe pour l'utilisateur et leur perte serait critique.

Sauvegardes de jeux et état de l'application

Sauvegardes de jeux, fichiers d'état de l'application, projets exportés — tout ce que l'utilisateur s'attend à restaurer après la réinstallation de l'application. Cependant, pour les données critiques, il est recommandé d'utiliser en complément iCloud Key-Value Storage ou Core Data avec synchronisation iCloud.

Type de donnéeAdapté pour DocumentsAlternative
PDF et documents texteOui
Cache d'imagesNonCaches Directory
Sauvegardes de jeuxOuiiCloud KVS
Journaux et données de débogageNonCaches ou tmp
Rapports exportésOui

Le critère clé : si les données peuvent être téléchargées à nouveau depuis le réseau ou recréées — elles ont leur place dans Caches, pas dans Documents. Chaque gigaoctet dans Documents est un gigaoctet dans la sauvegarde iCloud de l'utilisateur.

Sauvegarde et synchronisation

iOS inclut automatiquement le contenu de Documents Directory dans les sauvegardes lorsque l'appareil est connecté à iTunes ou lors de la synchronisation avec iCloud. Ce comportement ne peut pas être désactivé au niveau du répertoire — seulement par fichier via l'attribut NSURLIsExcludedFromBackupKey.

À partir d'iOS 5.0, Apple a commencé à rejeter les applications qui stockent de gros volumes de données récupérables dans Documents. La recommandation d'Apple : les fichiers qui peuvent être téléchargés à nouveau doivent être stockés dans Caches Directory avec le drapeau d'exclusion de sauvegarde.

swift
import Foundation

let documentsURL = FileManager.default
    .urls(for: .documentDirectory, in: .userDomainMask)
    .first!

// Exclure le fichier de la sauvegarde iCloud
var resourceValues = URLResourceValues()
resourceValues.isExcludedFromBackup = true

var fileURL = documentsURL.appendingPathComponent("cached_data.json")
try fileURL.setResourceValues(resourceValues)

La synchronisation iCloud fonctionne via NSUbiquitousContainer si l'application utilise iCloud Documents. Dans ce cas, les fichiers de Documents Directory sont automatiquement synchronisés entre les appareils de l'utilisateur. Pour les applications sans iCloud, la synchronisation est limitée à la sauvegarde.

Documents Directory vs Caches Directory

La différence entre Documents et Caches est l'une des idées fausses les plus courantes parmi les développeurs iOS débutants. La principale différence : le système peut supprimer des fichiers de Caches à tout moment pour libérer de l'espace, mais il ne touche jamais à Documents sans l'accord de l'utilisateur.

CaractéristiqueDocuments DirectoryCaches Directory
Sauvegarde iCloudOui (par défaut)Non
Suppression par le systèmeJamaisQuand l'espace est insuffisant
iTunes File SharingOui (avec drapeau activé)Non
ObjectifDonnées utilisateurCache, données temporaires
Récupération des donnéesNécessite restaurationPeut être téléchargé à nouveau

Selon la Documentation Apple Developer (2024), l'utilisation inappropriée de Documents Directory est l'une des raisons courantes de rejet des applications lors de la révision : si une application stocke plus de quelques mégaoctets de données récupérables dans Documents, Apple recommande de les déplacer vers Caches ou d'appliquer NSURLIsExcludedFromBackupKey.

Une règle pratique : si l'utilisateur serait contrarié de perdre le fichier — stockez-le dans Documents. Si le fichier peut être téléchargé à nouveau ou régénéré — stockez-le dans Caches.

Bonnes pratiques pour travailler avec Documents

Les développeurs iOS expérimentés ont élaboré plusieurs règles qui aident à éviter les problèmes avec Documents Directory à toutes les étapes du cycle de vie de l'application — du développement à la publication sur l'App Store.

Surveillance de la taille du répertoire

Régulièrement vérifiez la taille de Documents Directory via FileManager.enumerator(at:includingPropertiesForKeys:). Si la taille dépasse 100 Mo pour des données non utilisateur — c'est une raison de reconsidérer l'architecture de stockage.

Exclusion des fichiers récupérables de la sauvegarde

Pour tous les fichiers qui peuvent être téléchargés à nouveau, définissez isExcludedFromBackup = true. Cela réduit la charge sur le stockage iCloud de l'utilisateur et diminue le risque de rejet par l'App Review.

Migration lors des mises à jour

Lorsque vous modifiez le format des données dans Documents, prévoyez une migration : ne supprimez pas les anciens fichiers tant que vous n'êtes pas sûr que les nouveaux sont correctement créés. Utilisez des sous-répertoires spécifiques à la version.

swift
import Foundation

let documentsURL = FileManager.default
    .urls(for: .documentDirectory, in: .userDomainMask)
    .first!

let versionDir = documentsURL.appendingPathComponent("v2")
try FileManager.default.createDirectory(
    at: versionDir,
    withIntermediateDirectories: true
)

Suivre ces bonnes pratiques réduit le risque de perte de données utilisateur, diminue la taille de la sauvegarde iCloud et simplifie la révision sur l'App Store.

Foire aux questions

Un utilisateur peut-il accéder à Documents Directory sans iTunes ?

Oui, via Files — l'application intégrée d'iOS à partir de la version 11. Lorsque la clé UIFileSharingEnabled est activée dans Info.plist, le contenu de Documents Directory apparaît dans l'application Fichiers dans la section « Sur mon iPhone ». L'utilisateur peut visualiser, copier et supprimer des fichiers.

Que devient Documents Directory lorsque l'application est supprimée ?

L'ensemble du sandbox de l'application, y compris Documents Directory, Caches, tmp et Library, est complètement supprimé de l'appareil. Les sauvegardes iCloud sont conservées jusqu'à la restauration ou la suppression manuelle. Lors de la réinstallation, l'application démarre avec un sandbox propre.

Comment vérifier la taille de Documents Directory dans le code ?

Utilisez FileManager.enumerator pour parcourir tous les fichiers du répertoire et additionner leurs tailles. Pour chaque fichier, obtenez l'attribut .fileSize via resourceValues(forKeys:). Alternativement, utilisez URLResourceKey.fileSizeKey et .directoryEnumerationResults.

Puis-je stocker une base de données Core Data SQLite dans Documents ?

Par défaut, Core Data crée le fichier SQLite dans Library/Application Support, pas dans Documents. Déplacer la base de données vers Documents n'est pas recommandé — elle sera incluse dans iTunes File Sharing et l'utilisateur pourrait accidentellement la supprimer ou la modifier. L'exception est si l'application donne explicitement à l'utilisateur l'accès aux données via Core Data.

Qu'est-ce que UIFileSharingEnabled et comment l'activer ?

UIFileSharingEnabled (Application supports iTunes file sharing) est une clé booléenne dans Info.plist. Lorsqu'elle est définie sur YES, les utilisateurs peuvent copier des fichiers depuis Documents Directory via iTunes et Files. Ajoutez la clé à Info.plist : UIFileSharingEnabled = YES. Activez-la uniquement si l'application crée réellement des documents utilisateur.

Résumé

  • Documents Directory est l'emplacement principal des données utilisateur dans une application iOS qui doivent persister et être sauvegardées.
  • Le chemin vers le répertoire est obtenu via FileManager.urls(for: .documentDirectory) en Swift ou NSSearchPathForDirectoriesInDomains en Objective-C.
  • Tous les fichiers de Documents sont inclus dans les sauvegardes iCloud et iTunes par défaut — utilisez isExcludedFromBackup pour l'exclusion.
  • Le système ne supprime pas automatiquement les fichiers de Documents, contrairement à Caches Directory.
  • Pour les données récupérables (cache, fichiers temporaires), utilisez Caches Directory, pas Documents.
  • La clé UIFileSharingEnabled permet l'accès à Documents via iTunes et l'application Fichiers — utilisez-la consciemment.
  • Surveillez régulièrement la taille de Documents Directory : dépasser 100 Mo pour des données non critiques est un problème d'architecture.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi