From b4d379c650b3ad8bbbd2804b8e6d7cbe4da471ee Mon Sep 17 00:00:00 2001 From: yggverse Date: Sat, 2 Aug 2025 15:57:41 +0300 Subject: [PATCH] skip directory create if already exists, return `PathBuf`, convert to string outside --- src/main.rs | 4 +++- src/preload.rs | 9 ++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index ab5a19e..3ceb219 100644 --- a/src/main.rs +++ b/src/main.rs @@ -128,7 +128,9 @@ async fn main() -> Result<()> { config.preload_max_filecount.unwrap_or_default(), )), // the folder to preload temporary files (e.g. images for the audio albums) - output_folder: Some(preload.output_folder(&i)?), + output_folder: Some( + preload.output_folder(&i)?.to_string_lossy().to_string(), + ), ..Default::default() }), ), diff --git a/src/preload.rs b/src/preload.rs index bcabd26..008435b 100644 --- a/src/preload.rs +++ b/src/preload.rs @@ -31,11 +31,14 @@ impl Preload { Ok(()) } - pub fn output_folder(&self, info_hash: &str) -> Result { + /// * create new directory if not exists + pub fn output_folder(&self, info_hash: &str) -> Result { let mut p = PathBuf::from(&self.directory); p.push(info_hash); - fs::create_dir(&p)?; - Ok(p.to_string_lossy().to_string()) + if !p.exists() { + fs::create_dir(&p)? + } + Ok(p) } pub fn root(&self) -> PathBuf {