Écrire et lire un fichier texte, dans le dossier documents d’une App IOS en Swift.
Les applications sur un appareil IOS sont exécutées dans une Sandbox (Bac à sable en français). C’est-à-dire qu’elles sont lancées dans un environnement sécurisé, isolé des autres applications.
Dans cette sandbox les applications ont un dossier “documents”, où il est possible de sauvegarder des données propres à votre application.
Nous allons voir comment écrire et lire un fichier texte dans le dossier Documents.
La première chose à faire est de chercher où se trouve ce dossier. Son chemin n’est pas fixe et peut varier. Voici la fonction pour identifier le chemin :
1 2 3 4 |
func getDocumentsDirectory() -> URL { let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) return paths.first! } |
Exemple de chemin :
file:///Users/sgenos/Library/Developer/CoreSimulator/Devices/703BC84E-5C51-402D-9F93-E9A9CAA5B33D/data/Containers/Data/Application/40B7CCCF-F664-415A-8FBC-17A2F621EB6F/Documents/
La source de notre texte sera un UITextView.
1 |
@IBOutlet weak var zoneText: UITextView! |
Voici la fonction pour l’écriture :
1 2 3 4 5 6 7 8 9 |
@IBAction func sauvegardeAction(_ sender: Any) { let str = zoneText.text as String let filename = getDocumentsDirectory().appendingPathComponent("monFichier.txt") do { try str.write(to: filename, atomically: true, encoding: String.Encoding.utf8) } catch { // } } |
Voici celle pour la lecture :
1 2 3 4 5 6 7 8 9 10 |
@IBAction func chargeAction(_ sender: Any) { zoneText.text.removeAll() let filename = getDocumentsDirectory().appendingPathComponent("monFichier.txt") do { zoneText.text = try String(contentsOf: filename) } catch { // } } |
Je vous joins à cet article le fichier de cet exemple.
Bonne programmation 🙂
Bonjour;
C’est étrange que lire et écrire un fichier ligne par ligne pour une bonne gestion soit ignoré de la doc SWIFT
Enfin quelque chose de précis MERCI