Skip to content

Byron/trash-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bfbc394 · Dec 4, 2024
Oct 20, 2023
Dec 4, 2024
Dec 4, 2024
Dec 4, 2024
Apr 16, 2021
Oct 26, 2024
Dec 4, 2024
Sep 24, 2020
Dec 4, 2024
Jan 30, 2023

Repository files navigation

Crates.io Docs.rs CI

About

The trash is a Rust library for moving files and folders to the operating system's Recycle Bin or Trash or Rubbish Bin or what have you :D

The library supports Windows, macOS, and all FreeDesktop Trash compliant environments (including GNOME, KDE, XFCE, and more). See more about the FreeDesktop Trash implementation in the freedesktop.rs file.

Usage

# In Cargo.toml
[dependencies]
trash = "3"
// In main.rs
use std::fs::File;
use trash;

fn main() {
    // Let's create and remove a single file
    File::create_new("remove-me").unwrap();
    trash::delete("remove-me").unwrap();
    assert!(File::open("remove-me").is_err());

    // Now let's remove multiple files at once
    let the_others = ["remove-me-too", "dont-forget-about-me-either"];
    for name in the_others.iter() {
        File::create_new(name).unwrap();
    }
    trash::delete_all(&the_others).unwrap();
    for name in the_others.iter() {
        assert!(File::open(name).is_err());
    }
}