diff --git a/src/main.rs b/src/main.rs index 7855013..d885aab 100644 --- a/src/main.rs +++ b/src/main.rs @@ -40,7 +40,7 @@ async fn main() -> Result<()> { } // librqbit impl dependency let database = Database::init(&config.database)?; let peers = Peers::init(&config.initial_peer)?; - let mut preload = Preload::init( + let preload = Preload::init( config.preload, config.preload_max_filecount, config.preload_max_filesize, @@ -261,7 +261,7 @@ async fn main() -> Result<()> { .delete(librqbit::api::TorrentIdOrHash::Id(id), false) .await?; // cleanup tmp - preload.clear(); + preload.clear()?; if config.debug { println!("\t\t\tadd `{i}` to index.") } diff --git a/src/preload.rs b/src/preload.rs index 88f56aa..f88d98d 100644 --- a/src/preload.rs +++ b/src/preload.rs @@ -24,8 +24,16 @@ impl Preload { }) } - pub fn clear(&mut self) { - self.directory.clear() + pub fn clear(&self) -> Result<()> { + for entry in fs::read_dir(&self.directory)? { + let e = entry?; + if e.file_type()?.is_dir() { + fs::remove_dir_all(e)?; + } else { + fs::remove_file(e)?; + } + } + Ok(()) } pub fn directory(&self) -> &PathBuf {