From 3f9ee75843d5cc2b800fb5daaa6fa40a5777ef08 Mon Sep 17 00:00:00 2001 From: z30054037 Date: Tue, 12 Dec 2023 16:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A1=AE=E4=BF=9Dbackup=5Fconfig=E9=87=8C?= =?UTF-8?q?=E7=9A=84includes=E5=92=8Cexcludes=E5=AD=97=E6=AE=B5=E6=9C=89?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: z30054037 Change-Id: I2701737e5b1dc693bcd03bca6a4c2d95d14cd579 --- frameworks/native/backup_ext/src/tar_file.cpp | 2 +- utils/src/b_filesystem/b_dir.cpp | 18 +++++++++++++++--- .../b_json/b_json_entity_extension_config.cpp | 2 +- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index aa1ebee0d..3208db4ea 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -49,7 +49,7 @@ TarFile &TarFile::GetInstance() bool TarFile::Packet(const vector &srcFiles, const string &tarFileName, const string &pkPath, TarMap &tarMap) { - if (srcFiles.empty() || tarFileName.empty() || pkPath.empty()) { + if (tarFileName.empty() || pkPath.empty()) { HILOGE("Invalid parameter"); return false; } diff --git a/utils/src/b_filesystem/b_dir.cpp b/utils/src/b_filesystem/b_dir.cpp index 1154b0727..41fba644d 100644 --- a/utils/src/b_filesystem/b_dir.cpp +++ b/utils/src/b_filesystem/b_dir.cpp @@ -189,7 +189,11 @@ tuple, vector> BDir::GetBigFiles(const return false; } for (const string &item : s) { - if (!item.empty() && (fnmatch(item.data(), str.data(), FNM_LEADING_DIR) == 0)) { + if (item.empty()) { + continue; + } + string::size_type idx = str.find(item); + if (fnmatch(item.data(), str.data(), FNM_LEADING_DIR) == 0 || (idx != string::npos && idx == 0)) { HILOGI("file %{public}s matchs exclude condition", str.c_str()); return true; } @@ -197,6 +201,14 @@ tuple, vector> BDir::GetBigFiles(const return false; }; + vector resSmallFiles; + for (const auto &item : incSmallFiles) { + if (!isMatch(excludes, item)) { + HILOGI("smallfile %{public}s matchs include condition and unmatchs exclude condition", item.c_str()); + resSmallFiles.insert(resSmallFiles.end(), item); + } + } + map bigFiles; for (const auto &item : incFiles) { if (!isMatch(excludes, item.first)) { @@ -205,8 +217,8 @@ tuple, vector> BDir::GetBigFiles(const } } HILOGI("total number of big files is %{public}d", static_cast(bigFiles.size())); - HILOGI("total number of small files is %{public}d", static_cast(incSmallFiles.size())); - return {ERR_OK, move(bigFiles), move(incSmallFiles)}; + HILOGI("total number of small files is %{public}d", static_cast(resSmallFiles.size())); + return {ERR_OK, move(bigFiles), move(resSmallFiles)}; } vector BDir::GetDirs(const vector &paths) diff --git a/utils/src/b_json/b_json_entity_extension_config.cpp b/utils/src/b_json/b_json_entity_extension_config.cpp index f6e7e751e..76d1ec21d 100644 --- a/utils/src/b_json/b_json_entity_extension_config.cpp +++ b/utils/src/b_json/b_json_entity_extension_config.cpp @@ -47,7 +47,7 @@ vector BJsonEntityExtensionConfig::GetIncludes() const vector dirs; for (auto &&item : obj_["includes"]) { - if (!item.isString()) { + if (!item.isString() || item.empty()) { HILOGE("Each item of array 'includes' must be of the type string"); continue; } -- Gitee