0Pricing
Swift Academy · Lección

Gestión de directorios

Cree, enumere y elimine directorios.

Gestión de directorios es una lección gratuita de Swift Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Swift Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Swift Academy incluye 4 lecciones en total.

Gestionar directorios

FileManager es el objeto central para crear, enumerar, mover y eliminar archivos y carpetas.

El FileManager compartido

Use FileManager.default para la mayoría de las operaciones. Proporciona una instancia compartida segura para subprocesos.

import Foundation

let fm = FileManager.default
print("Got the default file manager")

Crear un directorio

createDirectory(at:withIntermediateDirectories:) crea una carpeta y, opcionalmente, también los directorios principales que falten.

import Foundation

let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp/myapp/cache")
try? fm.createDirectory(at: dir, withIntermediateDirectories: true)
print("Directory created")

Comprobar la existencia

fileExists(atPath:) indica si existe una ruta, y un indicador inout le informa de si se trata de un directorio.

import Foundation

let fm = FileManager.default
var isDir: ObjCBool = false
let exists = fm.fileExists(atPath: "/tmp", isDirectory: &isDir)
print("Exists: \(exists), isDir: \(isDir.boolValue)")

Listar el contenido

contentsOfDirectory(at:includingPropertiesForKeys:) devuelve las URL que hay dentro de una carpeta.

import Foundation

let fm = FileManager.default
let dir = URL(fileURLWithPath: "/tmp")
if let items = try? fm.contentsOfDirectory(at: dir, includingPropertiesForKeys: nil) {
    print("Item count: \(items.count)")
}

Listar solo nombres

La versión basada en rutas, contentsOfDirectory(atPath:), devuelve cadenas simples con los nombres de archivo cuando no necesita URL completas.

import Foundation

let fm = FileManager.default
if let names = try? fm.contentsOfDirectory(atPath: "/tmp") {
    print("Names count: \(names.count)")
}

Eliminar elementos

removeItem(at:) elimina un archivo o todo un árbol de directorios. Utilícelo con cuidado.

import Foundation

let fm = FileManager.default
let url = URL(fileURLWithPath: "/tmp/myapp/cache/old.txt")
try? fm.removeItem(at: url)
print("Removed item if it existed")

Mover y cambiar nombres

moveItem(at:to:) reubica o cambia el nombre; copyItem(at:to:) duplica un archivo.

import Foundation

let fm = FileManager.default
let src = URL(fileURLWithPath: "/tmp/a.txt")
let dst = URL(fileURLWithPath: "/tmp/b.txt")
try? fm.moveItem(at: src, to: dst)
print("Moved if source existed")

Enumerar en profundidad

Un FileManager.DirectoryEnumerator recorre recursivamente todo un subárbol y proporciona cada URL anidada.

import Foundation

let fm = FileManager.default
let root = URL(fileURLWithPath: "/tmp")
if let e = fm.enumerator(at: root, includingPropertiesForKeys: nil) {
    var count = 0
    for case _ as URL in e { count += 1; if count > 5 { break } }
    print("Walked some entries: \(count)")
}

Atributos de archivos

attributesOfItem(atPath:) devuelve metadatos como el tamaño y la fecha de modificación en un diccionario.

import Foundation

let fm = FileManager.default
if let attrs = try? fm.attributesOfItem(atPath: "/tmp"),
   let size = attrs[.size] {
    print("Has size attribute: \(size)")
}

Gestionar errores

Las operaciones con directorios producen errores por problemas de permisos o rutas inexistentes. Envuélvalas en do/catch para responder correctamente.

import Foundation

let fm = FileManager.default
do {
    try fm.removeItem(at: URL(fileURLWithPath: "/no/such/file"))
} catch {
    print("Remove failed: \(error.localizedDescription)")
}

Comprobación rápida

¿Qué opción hace que createDirectory cree también las carpetas principales que faltan?

Resumen

FileManager.default crea carpetas con createDirectory, comprueba su existencia con fileExists, enumera su contenido con contentsOfDirectory, elimina elementos con removeItem y mueve o copia elementos. También ha enumerado subárboles y leído atributos. Siguiente tema: los directorios del sandbox de la app.

Preguntas frecuentes

¿La lección «Gestión de directorios» es gratis?

Sí — el texto completo de «Gestión de directorios» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Swift Academy, actualiza a CoddyKit PRO. El curso de Swift Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Gestión de directorios»?

Cree, enumere y elimine directorios. Practicas Swift Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Swift Academy?

No se requiere experiencia previa. Swift Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Gestión de directorios»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Swift Academy?

Sí. Cada lección de Swift Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. URL y rutas de archivos
  2. Lectura y escritura de datos
  3. Gestión de directorios
  4. Directorios del entorno aislado de la app
← Volver a Swift Academy