Swift Academy · Lezione

Gestione delle directory

Crei, elenchi e rimuovi directory.

Lezione 3 di 413 passaggi

Gestione delle directory è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.

Gestione delle directory

FileManager è l'oggetto centrale per creare, elencare, spostare ed eliminare file e cartelle.

Il FileManager condiviso

Usi FileManager.default per la maggior parte delle operazioni. Fornisce un'istanza condivisa sicura per l'uso concorrente.

import Foundation

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

Creazione di una directory

createDirectory(at:withIntermediateDirectories:) crea una cartella, con la possibilità di creare anche tutte le directory principali mancanti.

import Foundation

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

Verifica dell'esistenza

fileExists(atPath:) indica se un percorso esiste; un flag inout indica se si tratta di una directory.

import Foundation

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

Elenco dei contenuti

contentsOfDirectory(at:includingPropertiesForKeys:) restituisce gli URL contenuti in una cartella.

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)")
}

Elenco dei soli nomi

La versione basata sul percorso, contentsOfDirectory(atPath:), restituisce semplici stringhe con i nomi dei file quando non servono gli URL completi.

import Foundation

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

Rimozione degli elementi

removeItem(at:) elimina un file o un intero albero di directory. Utilizzatelo con cautela.

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")

Spostamento e ridenominazione

moveItem(at:to:) sposta o rinomina; copyItem(at:to:) duplica un file.

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")

Enumerazione ricorsiva

Un FileManager.DirectoryEnumerator percorre ricorsivamente un intero sottoalbero e restituisce ogni URL annidato.

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)")
}

Attributi dei file

attributesOfItem(atPath:) restituisce metadati come dimensioni e data di modifica in un dizionario.

import Foundation

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

Gestione degli errori

Le operazioni sulle directory generano errori in caso di problemi di autorizzazione o percorsi mancanti. Racchiudetele in do/catch per gestirli in modo appropriato.

import Foundation

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

Verifica rapida

Quale opzione fa sì che createDirectory crei anche le cartelle padre mancanti?

Riepilogo

FileManager.default crea cartelle con createDirectory, verifica l'esistenza con fileExists, elenca i contenuti con contentsOfDirectory, elimina con removeItem e sposta o copia gli elementi. È stata inoltre eseguita l'enumerazione dei sottoalberi e sono stati letti gli attributi. Prossimo argomento: le directory sandbox dell'app.

Gratis per iniziare

Impara Swift con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
122
Lezioni
409

Domande Frequenti

La lezione «Gestione delle directory» è gratuita?

Sì — il testo completo di «Gestione delle directory» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.

Cosa imparerò in «Gestione delle directory»?

Crei, elenchi e rimuovi directory. Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Swift Academy?

Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Gestione delle directory»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Swift Academy?

Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. URL e percorsi dei file
  2. Lettura e scrittura dei dati
  3. Gestione delle directory
  4. Directory della sandbox dell’app
← Torna a Swift Academy