# remove_dir_all_ext
[](https://crates.io/crates/remove_dir_all_ext)
[](https://docs.rs/remove_dir_all_ext)
[](https://github.com/gussy/remove_dir_all_ext)
> [!NOTE]
> This is a fork of [remove_dir_all](https://github.com/caesay/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
```rust,no_run
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.