From c7c02f7b9ca2cb0578969e4eaf68e4ef17d927d8 Mon Sep 17 00:00:00 2001 From: rawdaGastan Date: Sun, 22 Sep 2024 12:46:08 +0300 Subject: [PATCH] read file instead of check its existence --- rfs/src/store/dir.rs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/rfs/src/store/dir.rs b/rfs/src/store/dir.rs index e545df0..c5e9b11 100644 --- a/rfs/src/store/dir.rs +++ b/rfs/src/store/dir.rs @@ -37,16 +37,21 @@ impl Store for DirStore { let file_name = hex::encode(key); let dir_path = self.root.join(&file_name[0..2]); - let path = match fs::try_exists(&dir_path).await { - Ok(true) => dir_path.join(file_name), - Ok(false) => self.root.join(file_name), - Err(e) => return Err(Error::IO(e)), - }; - + let mut path = dir_path.join(&file_name); let data = match fs::read(&path).await { Ok(data) => data, Err(err) if err.kind() == ErrorKind::NotFound => { - return Err(Error::KeyNotFound); + path = self.root.join(file_name); + let data = match fs::read(&path).await { + Ok(data) => data, + Err(err) if err.kind() == ErrorKind::NotFound => { + return Err(Error::KeyNotFound); + } + Err(err) => { + return Err(Error::IO(err)); + } + }; + data } Err(err) => { return Err(Error::IO(err));