Diretórios do Sandbox do Aplicativo
Use Documents, Caches e locais temporários.
Diretórios do Sandbox do Aplicativo é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 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.
Diretórios de Sandbox do app
Os apps são executados em um ambiente isolado: eles só podem gravar dentro do próprio contêiner. Há pastas padrão para documentos, caches e arquivos temporários.
Encontrando o Diretório de Documentos
FileManager.urls(for:in:) retorna as URLs de um diretório conhecido. .documentDirectory armazena dados do usuário que devem ser incluídos na cópia de segurança.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")Criando URLs de Arquivos
Acrescente um nome de arquivo à URL do diretório para obter um caminho completo para seus próprios arquivos.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let file = docs.appendingPathComponent("profile.json")
print(file.lastPathComponent)O Diretório de Cache
.cachesDirectory armazena dados que podem ser regenerados. O sistema pode removê-los quando houver pouco espaço em disco; portanto, nunca mantenha aqui dados insubstituíveis.
import Foundation
let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")O Diretório Temporário
FileManager.default.temporaryDirectory fornece um espaço de trabalho para arquivos de curta duração, que você deve limpar por conta própria.
import Foundation
let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")Documentos vs. Cache vs. Temporários
Use Documentos para dados criados pelo usuário, incluídos na cópia de segurança; Cache para dados reproduzíveis; e tmp para arquivos descartáveis.
import Foundation
// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")Suporte do app
.applicationSupportDirectory armazena dados gerenciados pelo app que não são diretamente visíveis ao usuário, como bancos de dados. Em geral, você o cria na primeira inicialização.
import Foundation
let fm = FileManager.default
let support = fm.urls(for: .applicationSupportDirectory, in: .userDomainMask).first!
try? fm.createDirectory(at: support, withIntermediateDirectories: true)
print("Ensured Application Support exists")Salvando em Documentos
Combine a URL do diretório com uma chamada de gravação para persistir os dados do usuário dentro do ambiente isolado.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
try? "hello".write(to: url, atomically: true, encoding: .utf8)
print("Saved into Documents")Lendo Novamente
Leia os arquivos do ambiente isolado da mesma forma que qualquer URL de arquivo, pois o caminho é totalmente válido dentro do contêiner.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
print(text)
}Excluindo da Cópia de Segurança
Defina o valor de recurso isExcludedFromBackup em arquivos grandes e regeneráveis para que eles não aumentem excessivamente as cópias de segurança do iCloud.
import Foundation
var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")Por Que o Isolamento é Importante
Os caminhos do ambiente isolado diferem a cada instalação e em cada dispositivo; portanto, nunca os codifique diretamente. Sempre resolva os diretórios em tempo de execução com FileManager.
import Foundation
// Never hardcode /var/mobile/... — resolve at runtime instead.
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Resolved Documents dynamically: \(!docs.path.isEmpty)")Verificação Rápida
Qual diretório deve armazenar os dados do usuário que precisam ser incluídos na cópia de segurança?
Recapitulação
Os apps armazenam arquivos em pastas do ambiente isolado, resolvidas por meio de FileManager.urls(for:in:): Documentos para dados do usuário incluídos na cópia de segurança, Cache para dados regeneráveis, tmp para arquivos temporários, além do Suporte do app. Resolva os caminhos em tempo de execução; nunca os codifique diretamente. Isso conclui o curso de E/S de Arquivos.
Aprenda Swift com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 122
- Aulas
- 409
Perguntas Frequentes
A aula “Diretórios do Sandbox do Aplicativo” é grátis?
Sim — o texto completo de “Diretórios do Sandbox do Aplicativo” é 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 “Diretórios do Sandbox do Aplicativo”?
Use Documents, Caches e locais temporá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 4 de 4.
Quanto tempo leva a aula “Diretórios do Sandbox do Aplicativo”?
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
- URLs e Caminhos de Arquivos
- Leitura e Gravação de Dados
- Gerenciamento de Diretórios
- Diretórios do Sandbox do Aplicativo