Trabajo con el sistema de archivos en Swift: Guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con el sistema de archivos en Swift: Guía completa



La gestión de archivos y directorios es una de las tareas clave al desarrollar aplicaciones para iOS y macOS. En Swift, la herramienta principal para trabajar con el sistema de archivos es la clase FileManager. En este artículo, veremos cómo crear, leer, escribir, mover y eliminar archivos, así como cómo gestionar directorios de manera eficiente. Todos los ejemplos de código están escritos en Swift y son adecuados para proyectos en iOS y macOS.



Fundamentos de FileManager



FileManager es un singleton que proporciona una interfaz para interactuar con el sistema de archivos. Para usarlo, basta con obtener una instancia:



let fileManager = FileManager.default


La clase permite realizar prácticamente cualquier operación: verificar la existencia de archivos, obtener atributos, crear carpetas y mucho más. Es importante recordar que todas las operaciones de trabajo con el sistema de archivos pueden lanzar errores, por lo que usaremos la construcción do-catch.



Trabajo con directorios



Antes de crear archivos, debemos aprender a gestionar carpetas. Veamos las operaciones principales con directorios.



Verificar la existencia de un directorio



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

if fileManager.fileExists(atPath: newFolderPath.path) { print("El directorio existe")} else { print("Directorio no encontrado")}


Crear un directorio



do {    try fileManager.createDirectory(at: newFolderPath,                                     withIntermediateDirectories: true,                                     attributes: nil)    print("Directorio creado")} catch {    print("Error al crear el directorio: \\(error.localizedDescription)")}


El parámetro withIntermediateDirectories permite crear automáticamente todas las carpetas faltantes en la ruta. Por ejemplo, si desea crear Folder1/Folder2/Folder3 y Folder1 no existe, se creará automáticamente.



Obtener la lista de contenido de un directorio



do {    let contents = try fileManager.contentsOfDirectory(at: documentsPath,                                                        includingPropertiesForKeys: nil)    for item in contents {        print("Elemento encontrado: \\(item.lastPathComponent)")    }} catch {    print("Error al leer el directorio: \\(error)")}


Lectura y escritura de archivos



En Swift, existen varias formas de escribir y leer datos. Veamos las principales.



Escribir un archivo de texto



let text = "¡Hola, mundo! Este es un archivo de prueba."let filePath = documentsPath.appendingPathComponent("test.txt")

do { try text.write(to: filePath, atomically: true, encoding: .utf8) print("Archivo escrito exitosamente")} catch { print("Error de escritura: \\(error)")}


Leer un archivo de texto



do {    let savedText = try String(contentsOf: filePath, encoding: .utf8)    print("Contenido del archivo: \\(savedText)")} catch {    print("Error de lectura: \\(error)")}


Trabajar con datos binarios



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

do { try data.write(to: binaryPath, options: .atomic) print("Datos binarios escritos")} catch { print("Error al escribir datos: \\(error)")}

// Lecturado { let loadedData = try Data(contentsOf: binaryPath) print("Leídos \\(loadedData.count) bytes")} catch { print("Error al leer datos: \\(error)")}


Mover, copiar y eliminar archivos



La gestión de archivos incluye no solo la creación, sino también la trans

Blogs

Book Recommendations