#directory-tree #utility #windows #remove-dir

bin+lib remove_dir_all_ext

A safe, reliable implementation of remove_dir_all for Windows

2 releases

0.8.4 Aug 12, 2024
0.8.3 Aug 12, 2024

#838 in Filesystem

MIT/Apache

34KB
431 lines

remove_dir_all_ext

Latest Version Docs License

[!NOTE] This is a fork of remove_dir_all, renamed as remove_dir_all_ext for publishing to crates.io

Description

Reliable and fast directory removal functions.

  • remove_dir_all - on non-Windows this is a re-export of std::fs::remove_dir_all. For Windows an implementation that handles the locking of directories that occurs when deleting directory trees rapidly.

  • remove_dir_contents - as for remove_dir_all but does not delete the supplied root directory.

  • ensure_empty_dir - as for remove_dir_contents but will create the directory if it does not exist.

Extended functions

  • remove_dir_containing_current_executable - as for remove_dir_contents but will delete the directory containing the current executable, leaving only the executable itself.

  • remove_dir_but_not_self as for remove_dir_contents but does not delete the currently running executable.

Example

extern crate remove_dir_all;

use remove_dir_all::*;

fn main() {
    remove_dir_all("./temp/").unwrap();
    remove_dir_contents("./cache/").unwrap();
}

Minimum Rust Version

The minimum rust version for remove_dir_all is the latest stable release, and the minimum version may be bumped through patch releases. You can pin to a specific version by setting by add = to your version (e.g. =0.6.0), or committing a Cargo.lock file to your project.

Dependencies

~2–11MB
~108K SLoC