#remove #recycle #bin #trash #rubbish

trash

A library for moving files and folders to the Recycle Bin

8 stable releases

new 2.0.1 May 2, 2021
2.0.0 Apr 20, 2021
1.3.0 Jan 24, 2021
1.2.0 Oct 22, 2020
0.1.1 Jul 13, 2019

#34 in Operating systems

Download history 353/week @ 2021-01-16 305/week @ 2021-01-23 432/week @ 2021-01-30 315/week @ 2021-02-06 540/week @ 2021-02-13 407/week @ 2021-02-20 291/week @ 2021-02-27 612/week @ 2021-03-06 458/week @ 2021-03-13 430/week @ 2021-03-20 548/week @ 2021-03-27 373/week @ 2021-04-03 427/week @ 2021-04-10 441/week @ 2021-04-17 448/week @ 2021-04-24 500/week @ 2021-05-01

1,863 downloads per month
Used in 9 crates (8 directly)

MIT license

96KB
2K SLoC

Crates.io Docs.rs

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 = "2.0"
// 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

~51–680KB
~15K SLoC