Quelqu'un peut-il m'expliquer quel est le répertoire des documents sur une application iOS et quand l'utiliser?
Voici ce que je crois actuellement:
Pour moi, cela semble être un dossier central dans lequel l'utilisateur peut stocker tous les fichiers nécessaires à l'application.
Ce serait un endroit différent de celui où Core Data stocke ses données?
Il semble que chaque application possède son propre répertoire de documents.
Je suis libre de créer un sous-répertoire du répertoire des documents, comme le répertoire des documents / images, ou le répertoire des documents / vidéos?
ios
nsdocumentdirectory
user798719
la source
la source
Réponses:
Votre application uniquement (sur un appareil non jailbreaké) s'exécute dans un environnement «bac à sable». Cela signifie qu'il ne peut accéder qu'aux fichiers et répertoires de son propre contenu. Par exemple Documents et Bibliothèque .
Consultez le Guide de programmation d'application iOS .
Pour accéder au répertoire Documents de votre sandbox d'applications, vous pouvez utiliser les éléments suivants:
iOS 8 et plus récent, c'est la méthode recommandée
si vous devez prendre en charge iOS 7 ou une version antérieure
Ce répertoire Documents vous permet de stocker des fichiers et des sous-répertoires créés par votre application ou dont vous pourriez avoir besoin.
Pour accéder aux fichiers du répertoire Bibliothèque de votre sandbox d'applications, utilisez (à la place de
paths
ci - dessus):la source
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
vous donnera toujours le bon répertoire!Cela a changé dans iOS 8. Consultez la note technique suivante: https://developer.apple.com/library/ios/technotes/tn2406/_index.html
La méthode approuvée par Apple (à partir du lien ci-dessus) est la suivante:
la source
Je n'ai pas trouvé le code dans le document suggéré par la réponse acceptée mais j'ai trouvé l'équivalent mis à jour ici:
Guide de programmation du système de fichiers :: Accès aux fichiers et répertoires »
Il décourage l'utilisation de NSSearchPathForDirectoriesInDomain:
Voici quelques autres constantes de répertoire utiles avec lesquelles jouer. Il ne fait aucun doute que tous ces éléments ne sont pas pris en charge dans iOS. Vous pouvez également utiliser la fonction NSHomeDirectory () qui:
Chez NSPathUtilities.h
Et enfin, quelques méthodes pratiques dans une catégorie NSURL http://club15cc.com/code/ios/easy-ios-file-directory-paths-with-this-handy-nsurl-category
la source
Swift 3 et 4 en tant que var globale:
En tant qu'extension FileManager:
la source
documentDirectoryURL
ou simplementdocumentDirectory
et vous fier au type. J'aime l'idée de l'étendre de manière statique àFileManager
une propriété statique dans une extension.Outre le
Documents
dossier, iOS vous permet également d'enregistrer des fichiers dans les dossierstemp
etLibrary
.Pour plus d'informations sur celui à utiliser, consultez ce lien dans la documentation:
la source
Il peut être plus simple d'ajouter une extension à FileManager pour ce genre d'appel gênant, pour plus de propreté si rien d'autre. Quelque chose comme:
la source
Vous pouvez accéder au répertoire des documents en utilisant ce code, il est essentiellement utilisé pour stocker le fichier au format plist:
la source
Voici une petite fonction utile, qui facilite un peu l'utilisation / la création de dossiers iOS.
Vous lui passez le nom d'un sous-dossier, il vous retournera le chemin complet et vous assurera que le répertoire existe.
(Personnellement, je colle cette fonction statique dans ma classe AppDelete, mais ce n'est peut-être pas l'endroit le plus intelligent pour la mettre.)
Voici comment vous l'appelleriez, pour obtenir le "chemin complet" d'un sous-répertoire MySavedImages:
Et voici la fonction complète:
En utilisant cette petite fonction, il est facile de créer un répertoire dans le répertoire Documents de votre application (s'il n'existe pas déjà), et d'y écrire un fichier.
Voici comment créer le répertoire et y écrire le contenu de l'un de mes fichiers image:
J'espère que cela t'aides !
la source
Comme d'autres mentionnés, votre application s'exécute dans un environnement sandbox et vous pouvez utiliser le répertoire de documents pour stocker des images ou d'autres actifs que votre application peut utiliser, par exemple. télécharger des fichiers offline-d selon les préférences de l'utilisateur - Notions de base sur le système de fichiers - Documentation Apple - Quel répertoire utiliser, pour stocker des fichiers spécifiques à une application
Mis à jour vers swift 5, vous pouvez utiliser l'une de ces fonctions, selon les besoins -
Usage:
la source