Skip to content

Commit

Permalink
Mention that std::fs::remove_dir_all fails on files
Browse files Browse the repository at this point in the history
This is explicitly mentioned for std::fs::remove_file's documentation,
but not in the aforementioned function.

It is more likely for a slightly lazy programmer to believe that
removing a file would work and that they do not have to distinguish
between directories (with contents) and files themself, because of the
function's recursive nature and how it distinguishes between files and
directories when removing them.
n0toose committed Nov 21, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 3c558bf commit 4583dde
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion std/src/fs.rs
Original file line number Diff line number Diff line change
@@ -2804,8 +2804,9 @@ pub fn remove_dir<P: AsRef<Path>>(path: P) -> io::Result<()> {
///
/// See [`fs::remove_file`] and [`fs::remove_dir`].
///
/// `remove_dir_all` will fail if `remove_dir` or `remove_file` fail on any constituent paths, including the root path.
/// `remove_dir_all` will fail if `remove_dir` or `remove_file` fail on any constituent paths, including the root `path`.
/// As a result, the directory you are deleting must exist, meaning that this function is not idempotent.
/// Additionally, `remove_dir_all` will also fail if the `path` is not a directory.
///
/// Consider ignoring the error if validating the removal is not required for your use case.
///

0 comments on commit 4583dde

Please sign in to comment.