Instead of disabling audio cache, just clean the audio cache and start caching again from the current file
@@ -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();
+ }
};
}
}
