diff --git a/repertory/librepertory/src/providers/base_provider.cpp b/repertory/librepertory/src/providers/base_provider.cpp index 48d57ead..1e36f46f 100644 --- a/repertory/librepertory/src/providers/base_provider.cpp +++ b/repertory/librepertory/src/providers/base_provider.cpp @@ -440,36 +440,38 @@ void base_provider::remove_deleted_files() { static_cast(__FUNCTION__), }; - auto source_list = - utils::file::directory{config_.get_cache_directory()}.get_files(); - for (auto &&source_file : source_list) { - filesystem_item fsi{}; - auto sp_res = - get_filesystem_item_from_source_path(source_file->get_path(), fsi); - if (sp_res != api_error::item_not_found) { - continue; - } + if (not is_direct_only()) { + auto source_list = + utils::file::directory{config_.get_cache_directory()}.get_files(); + for (auto &&source_file : source_list) { + filesystem_item fsi{}; + auto sp_res = + get_filesystem_item_from_source_path(source_file->get_path(), fsi); + if (sp_res != api_error::item_not_found) { + continue; + } - auto reference_time = - source_file->get_time(config_.get_eviction_uses_accessed_time() - ? utils::file::time_type::accessed - : utils::file::time_type::modified); - if (not reference_time.has_value()) { - continue; - } + auto reference_time = + source_file->get_time(config_.get_eviction_uses_accessed_time() + ? utils::file::time_type::accessed + : utils::file::time_type::modified); + if (not reference_time.has_value()) { + continue; + } - auto delay = (config_.get_eviction_delay_mins() * 60UL) * - utils::time::NANOS_PER_SECOND; - if ((reference_time.value() + static_cast(delay)) >= - utils::time::get_time_now()) { - continue; - } + auto delay = (config_.get_eviction_delay_mins() * 60UL) * + utils::time::NANOS_PER_SECOND; + if ((reference_time.value() + static_cast(delay)) >= + utils::time::get_time_now()) { + continue; + } - event_system::instance().raise( - source_file->get_path()); - if (source_file->remove()) { - event_system::instance().raise( + event_system::instance().raise( source_file->get_path()); + if (source_file->remove()) { + event_system::instance().raise( + source_file->get_path()); + } } }