Travailler avec le système de fichiers en Swift : Guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec le système de fichiers en Swift : Guide complet



La gestion des fichiers et des répertoires est l'une des tâches clés lors du développement d'applications pour iOS et macOS. En Swift, l'outil principal pour travailler avec le système de fichiers est la classe FileManager. Dans cet article, nous allons voir comment créer, lire, écrire, déplacer et supprimer des fichiers, ainsi que comment gérer efficacement les répertoires. Tous les exemples de code sont écrits en Swift et conviennent aux projets iOS et macOS.



Les bases de FileManager



FileManager est un singleton qui fournit une interface pour interagir avec le système de fichiers. Pour l'utiliser, il suffit d'obtenir une instance :



let fileManager = FileManager.default


La classe permet d'effectuer pratiquement toutes les opérations : vérifier l'existence de fichiers, obtenir des attributs, créer des dossiers et bien plus encore. Il est important de se rappeler que toutes les opérations liées au système de fichiers peuvent générer des erreurs, nous utiliserons donc la construction do-catch.



Travailler avec les répertoires



Avant de créer des fichiers, il faut apprendre à gérer les dossiers. Examinons les opérations de base avec les répertoires.



Vérification de l'existence d'un répertoire



let documentsPath = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first!let newFolderPath = documentsPath.appendingPathComponent("MyFolder")

if fileManager.fileExists(atPath: newFolderPath.path) { print("Le répertoire existe")} else { print("Répertoire introuvable")}


Création d'un répertoire



do {    try fileManager.createDirectory(at: newFolderPath,                                     withIntermediateDirectories: true,                                     attributes: nil)    print("Répertoire créé")} catch {    print("Erreur lors de la création du répertoire : \\(error.localizedDescription)")}


Le paramètre withIntermediateDirectories permet de créer automatiquement tous les dossiers manquants sur le chemin. Par exemple, si vous voulez créer Folder1/Folder2/Folder3 et que Folder1 n'existe pas, il sera créé automatiquement.



Obtention de la liste du contenu d'un répertoire



do {    let contents = try fileManager.contentsOfDirectory(at: documentsPath,                                                        includingPropertiesForKeys: nil)    for item in contents {        print("Élément trouvé : \\(item.lastPathComponent)")    }} catch {    print("Erreur lors de la lecture du répertoire : \\(error)")}


Lecture et écriture de fichiers



En Swift, il existe plusieurs façons d'écrire et de lire des données. Examinons les principales.



Écriture d'un fichier texte



let text = "Bonjour, le monde ! Ceci est un fichier de test."let filePath = documentsPath.appendingPathComponent("test.txt")

do { try text.write(to: filePath, atomically: true, encoding: .utf8) print("Fichier écrit avec succès")} catch { print("Erreur d'écriture : \\(error)")}


Lecture d'un fichier texte



do {    let savedText = try String(contentsOf: filePath, encoding: .utf8)    print("Contenu du fichier : \\(savedText)")} catch {    print("Erreur de lecture : \\(error)")}


Travailler avec des données binaires



// Écriturelet data = "Binary data example".data(using: .utf8)!let binaryPath = documentsPath.appendingPathComponent("data.bin")

do { try data.write(to: binaryPath, options: .atomic) print("Données binaires écrites")} catch { print("Erreur d'écriture des données : \\(error)")}

// Lecturedo { let loadedData = try Data(contentsOf: binaryPath) print("Lu \\(loadedData.count) octets")} catch { print("Erreur de lecture des données : \\(error)")}


Déplacement, copie et suppression de fichiers



La gestion des fichiers inclut non seulement la création, mais aussi le dé

Blogs

Book Recommendations