diff --git a/czkawka_core/src/similar_images.rs b/czkawka_core/src/similar_images.rs index c3ac406..b600531 100644 --- a/czkawka_core/src/similar_images.rs +++ b/czkawka_core/src/similar_images.rs @@ -645,21 +645,21 @@ fn get_string_from_similarity(similarity: &Similarity) -> &str { fn save_hashes_to_file(hashmap: &HashMap, text_messages: &mut Messages) { if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") { - // Lin: /home/alice/.config/barapp - // Win: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config - // Mac: /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App + // Lin: /home/username/.cache/czkawka + // Win: C:\Users\Username\AppData\Local\Qarmin\Czkawka\cache + // Mac: /Users/Username/Library/Caches/pl.Qarmin.Czkawka - let config_dir = PathBuf::from(proj_dirs.config_dir()); - if config_dir.exists() { - if !config_dir.is_dir() { - text_messages.messages.push(format!("Config dir {} is a file!", config_dir.display())); + let cache_dir = PathBuf::from(proj_dirs.cache_dir()); + if cache_dir.exists() { + if !cache_dir.is_dir() { + text_messages.messages.push(format!("Config dir {} is a file!", cache_dir.display())); return; } - } else if fs::create_dir_all(&config_dir).is_err() { - text_messages.messages.push(format!("Cannot create config dir {}", config_dir.display())); + } else if fs::create_dir_all(&cache_dir).is_err() { + text_messages.messages.push(format!("Cannot create config dir {}", cache_dir.display())); return; } - let config_file = config_dir.join(CACHE_FILE_NAME); + let config_file = cache_dir.join(CACHE_FILE_NAME); let file_handler = match OpenOptions::new().truncate(true).write(true).create(true).open(&config_file) { Ok(t) => t, Err(_) => { @@ -688,13 +688,26 @@ fn save_hashes_to_file(hashmap: &HashMap, text_messages: &mut } fn load_hashes_from_file(text_messages: &mut Messages) -> Option> { if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") { - let config_dir = PathBuf::from(proj_dirs.config_dir()); - let config_file = config_dir.join(CACHE_FILE_NAME); + let mut cache_dir = PathBuf::from(proj_dirs.cache_dir()); + let mut config_file = cache_dir.join(CACHE_FILE_NAME); let file_handler = match OpenOptions::new().read(true).open(&config_file) { Ok(t) => t, Err(_) => { text_messages.messages.push(format!("Cannot find or open cache file {}", config_file.display())); - return None; + // return None; // Enable when removing compatibility section + // Compatibility for upgrading project from 2.1 to 2.2 + { + cache_dir = PathBuf::from(proj_dirs.config_dir()); + config_file = cache_dir.join(CACHE_FILE_NAME); + match OpenOptions::new().read(true).open(&config_file) { + Ok(t) => t, + Err(_) => { + text_messages.messages.push(format!("Cannot find or open cache file {}", config_file.display())); + return None; + } + } + } + // End of compatibility section to remove after release 2.2 version } }; diff --git a/czkawka_gui/src/saving_loading.rs b/czkawka_gui/src/saving_loading.rs index 5ba28a5..5c7a6c4 100644 --- a/czkawka_gui/src/saving_loading.rs +++ b/czkawka_gui/src/saving_loading.rs @@ -23,9 +23,9 @@ pub fn save_configuration(gui_data: &GuiData, manual_execution: bool) { return; } if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") { - // Lin: /home/alice/.config/barapp - // Win: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config - // Mac: /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App + // Lin: /home/username/.config/czkawka + // Win: C:\Users\Username\AppData\Roaming\Qarmin\Czkawka\config + // Mac: /Users/Username/Library/Application Support/pl.Qarmin.Czkawka let config_dir = proj_dirs.config_dir(); if config_dir.exists() { @@ -166,9 +166,9 @@ pub fn load_configuration(gui_data: &GuiData, manual_execution: bool) { reset_text_view(&text_view_errors); if let Some(proj_dirs) = ProjectDirs::from("pl", "Qarmin", "Czkawka") { - // Lin: /home/alice/.config/barapp - // Win: C:\Users\Alice\AppData\Roaming\Foo Corp\Bar App\config - // Mac: /Users/Alice/Library/Application Support/com.Foo-Corp.Bar-App + // Lin: /home/username/.config/czkawka + // Win: C:\Users\Username\AppData\Roaming\Qarmin\Czkawka\config + // Mac: /Users/Username/Library/Application Support/pl.Qarmin.Czkawka let config_dir = proj_dirs.config_dir(); let config_file = config_dir.join(Path::new(SAVE_FILE_NAME)); diff --git a/instructions/Instruction.md b/instructions/Instruction.md index 0da06d9..a22a046 100644 --- a/instructions/Instruction.md +++ b/instructions/Instruction.md @@ -130,12 +130,17 @@ For now Czkawka store only 2 files on disk: - `cache_similar_image.txt` - stores cache data and hashes which may be used later without needing to compute image hash again - DO NOT TRY TO EDIT THIS FILE MANUALLY! - editing this file may cause app crashes. -This files are located in this path +First file is located in this path Linux - `/home/username/.config/czkawka` Mac - `/Users/username/Library/Application Support/pl.Qarmin.Czkawka` -Windows - `C:\Users\Alice\AppData\Roaming\Qarmin\Czkawka\config` +Windows - `C:\Users\Username\AppData\Roaming\Qarmin\Czkawka\config` +Second with cache here: + +Linux - `/home/username/.cache/czkawka` +Mac - `/Users/Username/Library/Caches/pl.Qarmin.Czkawka` +Windows - `C:\Users\Username\AppData\Local\Qarmin\Czkawka\cache` ## GUI GTK