0Pricing
Swift Academy · Aula

Gerenciamento de Diretórios

Crie, liste e remova diretórios.

Gerenciamento de Diretórios é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Gerenciando diretórios

FileManager é o objeto central para criar, listar, mover e excluir arquivos e pastas.

O FileManager compartilhado

Use FileManager.default para a maioria das operações. Ele fornece uma instância compartilhada segura para uso em várias threads.

import Foundation

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

Criando um diretório

createDirectory(at:withIntermediateDirectories:) cria uma pasta e pode criar também todos os diretórios pai ausentes.

import Foundation

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

Verificando a Existência

fileExists(atPath:) informa se um caminho existe, e um sinalizador inout informa se ele é um diretório.

import Foundation

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

Listando o Conteúdo

contentsOfDirectory(at:includingPropertiesForKeys:) retorna as URLs dentro de uma pasta.

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

Listando Apenas os Nomes

A versão baseada em caminho, contentsOfDirectory(atPath:), retorna strings simples com os nomes dos arquivos quando você não precisa das URLs completas.

import Foundation

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

Removendo Itens

removeItem(at:) exclui um arquivo ou toda uma árvore de diretórios. Use com 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")

Movendo e Renomeando

moveItem(at:to:) move ou renomeia; copyItem(at:to:) duplica um arquivo.

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

Enumerando Recursivamente

FileManager.DirectoryEnumerator percorre recursivamente toda uma subárvore, fornecendo cada URL aninhada.

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 do Arquivo

attributesOfItem(atPath:) retorna metadados, como tamanho e data de modificação, em um dicionário.

import Foundation

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

Tratando Falhas

As operações de diretório geram erros quando há problemas de permissão ou caminhos ausentes. Envolva-as em do/catch para responder de maneira adequada.

import Foundation

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

Verificação Rápida

Qual opção faz createDirectory também criar as pastas-pai ausentes?

Recapitulação

FileManager.default cria pastas com createDirectory, verifica com fileExists, lista com contentsOfDirectory, exclui com removeItem e move ou copia itens. Você também enumerou subárvores e leu atributos. A seguir: os diretórios de sandbox do app.

Perguntas Frequentes

A aula “Gerenciamento de Diretórios” é grátis?

Sim — o texto completo de “Gerenciamento de Diretórios” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Gerenciamento de Diretórios”?

Crie, liste e remova diretórios. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Gerenciamento de Diretórios”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. URLs e Caminhos de Arquivos
  2. Leitura e Gravação de Dados
  3. Gerenciamento de Diretórios
  4. Diretórios do Sandbox do Aplicativo
← Voltar para Swift Academy