Pular para o conteúdo

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.

01-read-write.zolo
Playground
// 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.

02-exists-and-stat.zolo
Playground
// 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.

03-list-dir.zolo
Playground
// 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.

04-temp-files.zolo
Playground
// 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.

Buscar no Zolo

9 resultados

enespt-br