diff options
| author | Dawid Ciężarkiewicz <dpc@dpc.pw> | 2017-03-11 08:04:30 -0800 |
|---|---|---|
| committer | Dawid Ciężarkiewicz <dpc@dpc.pw> | 2017-03-17 20:15:05 -0700 |
| commit | 0ec28b796d1206c4442f0269febe2a1cc0794411 (patch) | |
| tree | 0369fe06721d732b4ec945e2be53f2874ccc2cee /src/libstd | |
| parent | db00ba9eb2afa1a3db24e208cbd63125d0157090 (diff) | |
| download | rust-0ec28b796d1206c4442f0269febe2a1cc0794411.tar.gz rust-0ec28b796d1206c4442f0269febe2a1cc0794411.zip | |
Fix new version of `create_dir_all`
It will now correctly fail on existing non-directories.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/fs.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index bb8b4064fab..6a465e38f38 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -1777,7 +1777,7 @@ impl DirBuilder { fn create_dir_all(&self, path: &Path) -> io::Result<()> { match self.inner.mkdir(path) { Ok(()) => return Ok(()), - Err(ref e) if e.kind() == io::ErrorKind::AlreadyExists => return Ok(()), + Err(ref e) if e.kind() == io::ErrorKind::AlreadyExists && path.is_dir() => return Ok(()), Err(ref e) if e.kind() == io::ErrorKind::NotFound => {} Err(e) => return Err(e), } @@ -1787,7 +1787,7 @@ impl DirBuilder { } match self.inner.mkdir(path) { Ok(()) => Ok(()), - Err(ref e) if e.kind() == io::ErrorKind::AlreadyExists => Ok(()), + Err(ref e) if e.kind() == io::ErrorKind::AlreadyExists && path.is_dir() => Ok(()), Err(e) => Err(e), } } |
