Sistema de Arquivos (std::fs)
Nesta página
std::fs toca o disco: leitura, gravação, remoção, listagem de diretórios e
caminhos temporários. Como todas as operações interagem com o sistema de
arquivos do host, não podem ser executadas no sandbox WASM do navegador;
rode com a CLI do Zolo.
Ler e gravar arquivos
fs.write(path, content) grava texto; fs.read(path) carrega o conteúdo de
volta como string; fs.remove(path) apaga o arquivo. Os exemplos abaixo usam
fs.temp_dir() para não poluir o repositório:
Cria, lê e remove um arquivo de texto na pasta temporária do sistema.
// Feature: fs.write / fs.read — simple round-trip
// When to use: persist/load text on disk. Note: we use fs.temp_dir()
// to write to the system temp area and avoid littering the repo.
use std::fs
let dir = fs.temp_dir()
let path = dir + "/zolo-fs-roundtrip.txt"
let content = "hello, zolo!\nline 2"
fs.write(path, content)
// Read it back.
let loaded = fs.read(path)
print(loaded == content) // expected: true
print(loaded.contains("zolo")) // expected: true
// Cleanup.
fs.remove(path)
print(fs.exists(path)) // expected: false
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Verificar existência e tipo
fs.exists distingue caminhos existentes de inexistentes. fs.is_file e
fs.is_dir diferenciam arquivos regulares de diretórios:
Demonstra exists, is_file e is_dir antes e depois de criar um arquivo.
// Feature: fs.exists / fs.is_file / fs.is_dir — existence checks
// When to use: verify before reading/writing, distinguish kind.
use std::fs
let dir = fs.temp_dir()
let path = dir + "/zolo-fs-exists.txt"
// Before creating — does not exist.
print(fs.exists(path)) // expected: false
fs.write(path, "hello")
print(fs.exists(path)) // expected: true
print(fs.is_file(path)) // expected: true
print(fs.is_dir(path)) // expected: false
// temp_dir itself is a directory.
print(fs.exists(dir)) // expected: true
print(fs.is_dir(dir)) // expected: true
print(fs.is_file(dir)) // expected: false
// Cleanup.
fs.remove(path)
print(fs.exists(path)) // expected: false
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Listar diretórios
fs.list(dir) retorna um array de entradas do diretório. fs.mkdir cria um
diretório; fs.rmdir remove um diretório vazio:
Cria 3 arquivos em um subdiretório temporário, lista e conta as entradas .txt.
// Feature: fs.list — list contents of a directory
// When to use: walk files in a folder, generate indexes.
use std::fs
// Create 3 files inside a temp sub-directory to list.
let base = fs.temp_dir() + "/zolo-fs-list"
fs.mkdir(base)
fs.write(base + "/a.txt", "1")
fs.write(base + "/b.txt", "2")
fs.write(base + "/c.txt", "3")
// list returns an array of paths/entries.
let entries = fs.list(base)
print(entries.len() >= 3) // expected: true
// Count how many end with .txt.
var txts = 0
for e in entries {
if e.ends_with(".txt") {
txts = txts + 1
}
}
print(txts >= 3) // expected: true
// Cleanup.
fs.remove(base + "/a.txt")
fs.remove(base + "/b.txt")
fs.remove(base + "/c.txt")
fs.rmdir(base)
print(fs.exists(base)) // expected: false
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Arquivos e diretórios temporários
fs.temp_dir() retorna o diretório temporário do sistema. fs.temp_file(prefix)
reserva um nome único ainda não criado, adequado para arquivos de rascunho,
caches e testes:
Usa temp_dir e temp_file para criar e remover um arquivo de rascunho.
// Feature: fs.temp_dir / fs.temp_file — temporary scratch areas
// When to use: caches, scratch, tests — without polluting the project tree.
use std::path
use std::fs
// temp_dir — path to the system temp directory.
let dir = fs.temp_dir()
print(fs.is_dir(dir)) // expected: true
print(dir.len() > 0) // expected: true
// temp_file(prefix) — a unique unused path.
let path = fs.temp_file("zolo-demo-")
print(path.contains("zolo-demo-")) // expected: true
print(fs.exists(path)) // expected: false (only the name is reserved)
// Write and remove.
fs.write(path, "scratch")
print(fs.exists(path)) // expected: true
print(fs.read(path)) // expected: scratch
fs.remove(path)
print(fs.exists(path)) // expected: false
Requer a CLI/host do Zolo — abra no playground ou rode localmente.
Veja também