You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
So... correct me if I'm wrong, but fs::create_dir_all()'s docs seems to have a minor issue - it has the wrong behavior documented:
An error will be returned in the following situations: path already points to an existing file or directory.
However, async_std's create_dir_all() uses std's create_dir_all() internally, which does NOT return an error from an existing path:
Recursively create a directory and all of its parent components if they are missing.
and the DirBuilder::create() (which std::fs::create_dir_all() uses internally) states:
It is considered an error if the directory already exists unless recursive mode is enabled.
This can be demonstrated with the following code:
fnmain(){
async_std::task::block_on(async{let x = Path::new("./hello/world");println!("{:?}", fs::create_dir_all(x).await);});}
Running the above code twice prints Ok(()) twice, instead of printing an Err(...) after an Ok(()).
As a side note, a statement similar to the one in std's create_dir_all() documentation exists, but is phrased ambiguously, making it look like only the parent directory creation is optional when paired with the bad documentation:
Creates a new directory and all of its parents if they are missing.
The text was updated successfully, but these errors were encountered:
So... correct me if I'm wrong, but
fs::create_dir_all()
's docs seems to have a minor issue - it has the wrong behavior documented:However, async_std's
create_dir_all()
uses std'screate_dir_all()
internally, which does NOT return an error from an existing path:and the
DirBuilder::create()
(whichstd::fs::create_dir_all()
uses internally) states:This can be demonstrated with the following code:
Running the above code twice prints
Ok(())
twice, instead of printing anErr(...)
after anOk(())
.As a side note, a statement similar to the one in std's
create_dir_all()
documentation exists, but is phrased ambiguously, making it look like only the parent directory creation is optional when paired with the bad documentation:The text was updated successfully, but these errors were encountered: