29 stable releases (4 major)

4.1.1 May 1, 2024
4.1.0 Mar 19, 2024
3.3.1 Feb 12, 2024
3.1.2 Oct 18, 2023
0.1.1 Jul 13, 2019

#1 in #remove

Download history 5229/week @ 2024-01-26 5900/week @ 2024-02-02 6009/week @ 2024-02-09 8247/week @ 2024-02-16 7660/week @ 2024-02-23 6324/week @ 2024-03-01 6577/week @ 2024-03-08 5347/week @ 2024-03-15 5875/week @ 2024-03-22 6795/week @ 2024-03-29 6273/week @ 2024-04-05 5746/week @ 2024-04-12 6153/week @ 2024-04-19 6556/week @ 2024-04-26 6343/week @ 2024-05-03 5053/week @ 2024-05-10

24,913 downloads per month
Used in 46 crates (38 directly)

MIT license

105KB
2K SLoC

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("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(name).unwrap();
    }
    trash::delete_all(&the_others).unwrap();
    for name in the_others.iter() {
        assert!(File::open(name).is_err());
    }
}

Dependencies

~0–39MB
~582K SLoC