diff --git a/services/clouddiskservice/sync_folder/include/cloud_disk_service_metafile.h b/services/clouddiskservice/sync_folder/include/cloud_disk_service_metafile.h index 2611661465091dce56ed40e7ced03d9949236828..0347a8207d1903d5512976923ed4bf13dc68bde6 100644 --- a/services/clouddiskservice/sync_folder/include/cloud_disk_service_metafile.h +++ b/services/clouddiskservice/sync_folder/include/cloud_disk_service_metafile.h @@ -142,6 +142,7 @@ public: const uint32_t syncFolderIndex, const uint64_t inode); int32_t GetRelativePath(const std::shared_ptr metaFile, std::string &path); + void CloudDiskServiceClearAll(); private: MetaFileMgr() = default; ~MetaFileMgr() = default; diff --git a/services/clouddiskservice/sync_folder/src/cloud_disk_service_logfile.cpp b/services/clouddiskservice/sync_folder/src/cloud_disk_service_logfile.cpp index 78385580700b5b0f645f1965e9768860098617a5..7272956665c784b813cd39b298267affca845925 100644 --- a/services/clouddiskservice/sync_folder/src/cloud_disk_service_logfile.cpp +++ b/services/clouddiskservice/sync_folder/src/cloud_disk_service_logfile.cpp @@ -602,6 +602,7 @@ int32_t LogFileMgr::UnRegisterSyncFolder(const int32_t userId, const uint64_t sy std::lock_guard lock(mtx_); LogFileKey key(userId, syncFolderIndex); LogFiles_.erase(key); + MetaFileMgr::GetInstance().CloudDiskServiceClearAll(); std::string rootDir = "/data/service/el2/" + std::to_string(userId) + diff --git a/services/clouddiskservice/sync_folder/src/cloud_disk_service_metafile.cpp b/services/clouddiskservice/sync_folder/src/cloud_disk_service_metafile.cpp index 85c405816ceb30c830c06f27119a6cee53f33e00..92ac1c4fff9b2b43abb088e4e69aa36ace010a9c 100644 --- a/services/clouddiskservice/sync_folder/src/cloud_disk_service_metafile.cpp +++ b/services/clouddiskservice/sync_folder/src/cloud_disk_service_metafile.cpp @@ -795,4 +795,11 @@ int32_t MetaFileMgr::GetRelativePath(const std::shared_ptr lock(mtx_); + metaFiles_.clear(); + metaFileList_.clear(); +} + } // namespace OHOS::FileManagement::CloudDiskService