Trabalhando com o sistema de arquivos em Swift: guia completo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução ao trabalho com o sistema de arquivos em Swift



O desenvolvimento para iOS e macOS frequentemente requer interação com o sistema de arquivos do dispositivo. Seja para salvar dados do usuário, armazenar imagens em cache ou exportar documentos — saber trabalhar com arquivos e pastas é uma habilidade obrigatória para qualquer desenvolvedor Swift. Neste artigo, vamos detalhar como usar FileManager, URL e Data para realizar todas as operações básicas com o sistema de arquivos.



Vamos abordar criação, leitura, escrita e exclusão de arquivos, bem como navegação por diretórios. Todos os exemplos de código são escritos em Swift 5 e servem tanto para projetos iOS quanto macOS.



Componentes principais: FileManager e URL



Em Swift, a classe central para trabalhar com o sistema de arquivos é FileManager. Ela fornece métodos para gerenciar arquivos, diretórios e seus atributos. Para especificar caminhos, usa-se a estrutura URL, que é uma alternativa mais segura e moderna em comparação com strings.



Obtendo diretórios padrão



A primeira coisa que você precisa saber é como obter os caminhos para os diretórios padrão do sistema. Para iOS, geralmente são Documents, Library/Caches e tmp.



import Foundation

let fileManager = FileManager.default

// Diretório Documentsguard let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { fatalError("Não foi possível obter o diretório Documents")}print("Documents: \\(documentsURL.path)")

// Diretório Cachesguard let cachesURL = fileManager.urls(for: .cachesDirectory, in: .userDomainMask).first else { fatalError("Não foi possível obter o diretório Caches")}print("Caches: \\(cachesURL.path)")

// Diretório temporáriolet tempURL = fileManager.temporaryDirectoryprint("Temp: \\(tempURL.path)")


Criação e escrita de arquivos



Criar um arquivo em Swift é uma combinação de criar um caminho e escrever dados. Vamos ver duas abordagens principais.



Escrita de dados de texto



func createTextFile() {    guard let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { return }        let fileURL = documentsURL.appendingPathComponent("example.txt")    let content = "Olá, mundo! Este é um arquivo de teste."        do {        try content.write(to: fileURL, atomically: true, encoding: .utf8)        print("Arquivo criado com sucesso no caminho: \\(fileURL.path)")    } catch {        print("Erro ao escrever o arquivo: \\(error.localizedDescription)")    }}


Escrita de dados binários (imagens, arquivos)



func createBinaryFile() {    guard let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { return }        let fileURL = documentsURL.appendingPathComponent("data.bin")    let data = Data([0x48, 0x65, 0x6C, 0x6C, 0x6F]) // "Hello" em hex        do {        try data.write(to: fileURL, options: .atomic)        print("Arquivo binário criado")    } catch {        print("Erro: \\(error)")    }}


Criação de diretórios



func createDirectory() {    guard let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first else { return }        let newDirURL = documentsURL.appendingPathComponent("MyFolder")        do {        try fileManager.createDirectory(at: newDirURL, withIntermediateDirectories: true, attributes: nil)        print("Diretório criado: \\(newDirURL.path)")    } catch {        print("Erro ao criar diretório: \\(error)")    }}


Leitura e verificação de arquivos



Depois que os arquivos são criados, é preciso saber lê-los e verificar se existem.



Verificação de existência do arquivo



func fileExists(at url: URL) -> Bool {    return fileMan                

Blogs

Book Recommendations