summaryrefslogtreecommitdiff
path: root/server/common/src/fs_utils.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/common/src/fs_utils.rs')
-rw-r--r--server/common/src/fs_utils.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/server/common/src/fs_utils.rs b/server/common/src/fs_utils.rs
index 7905d01..b8c8554 100644
--- a/server/common/src/fs_utils.rs
+++ b/server/common/src/fs_utils.rs
@@ -5,11 +5,18 @@ use std::path::Path;
use tokio::fs;
pub async fn create_dir_allow_existing(path: impl AsRef<Path>) -> io::Result<()> {
- match fs::create_dir(path).await {
+ match fs::create_dir(path.as_ref()).await {
Ok(_) => Ok(()),
Err(e) => {
if e.kind() == io::ErrorKind::AlreadyExists {
- Ok(())
+ match fs::metadata(path).await {
+ Ok(metadata) => if metadata.is_dir() {
+ Ok(())
+ } else {
+ Err(e)
+ }
+ Err(e) => Err(e),
+ }
} else {
Err(e)
}