From 9d832baf83adf653243ac6e0b6de0b12b53b0a37 Mon Sep 17 00:00:00 2001 From: Laurent Louf Date: Mon, 3 Aug 2020 13:18:23 +0200 Subject: [PATCH] Instead of disabling audio cache, just clean the audio cache and start caching again from the current file --- core/src/cache.rs | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/core/src/cache.rs b/core/src/cache.rs index 3a5385b4..65d31ba0 100644 --- a/core/src/cache.rs +++ b/core/src/cache.rs @@ -83,15 +83,22 @@ impl Cache { pub fn save_file(&self, file: FileId, contents: &mut dyn Read) { if self.use_audio_cache { let path = self.file_path(file); - mkdir_existing(path.parent().unwrap()).unwrap(); - let mut cache_file = File::create(path) - match cache_file { - Ok(file) => ::std::io::copy(contents, &mut file).unwrap(), - Err(error) => { - self.use_audio_cache = false - }, + let file_create = File::create(path); + match file_create { + Ok(mut cache_file) => { + ::std::io::copy(contents, &mut cache_file).unwrap(); + } + Err(_error) => { + ::std::fs::remove_dir_all(&self.root.join("files")).unwrap(); + mkdir_existing(&self.root.join("files")).unwrap(); + + let path = self.file_path(file); + mkdir_existing(path.parent().unwrap()).unwrap(); + let mut cache_file = File::create(path).unwrap(); + ::std::io::copy(contents, &mut cache_file).unwrap(); + } }; } }