Criando um arquivo temporário

Rust:
Criando um arquivo temporário

Como Fazer:

use std::fs::File;
use std::io::{Write, Seek, SeekFrom};
use tempfile::{tempfile, NamedTempFile};

fn main() -> std::io::Result<()> {
    // Criando um arquivo temporário anônimo
    let mut temp_file = tempfile()?;
    writeln!(temp_file, "Olá, arquivo temporário!")?;
    
    // Criando um arquivo temporário nomeado
    let mut named_temp_file = NamedTempFile::new()?;
    writeln!(named_temp_file, "Este é um arquivo temporário com nome.")?;
    println!("Arquivo temporário salvo em: {:?}", named_temp_file.path());
    
    // Lembre-se, os arquivos temporários são apagados ao sair do escopo
    Ok(())
}

Saída esperada:

Arquivo temporário salvo em: "/tmp/.tmpXXXXX"  // O caminho real vai variar

Mergulho Profundo

Historicamente, arquivos temporários são usados para prevenir a perda de dados durante falhas e para lidar com grandes conjuntos de dados que podem não caber na memória. Em Rust, a biblioteca tempfile é uma escolha popular para lidar com arquivos temporários, pois lida automaticamente com a exclusão de arquivos quando eles saem de escopo ou o programa termina. Alternativas incluem gerenciar manualmente arquivos temporários (menos seguro) ou usar outras bibliotecas com funcionalidades similares.

Detalhes de implementação são importantes: tempfile() cria um arquivo anônimo, enquanto NamedTempFile::new() gera um arquivo com um nome que pode ser recuperado ou inspecionado no sistema de arquivos. Os arquivos são, por padrão, criados no diretório especificado pela variável de ambiente TMPDIR, ou /tmp em sistemas Unix.

Veja Também