From a9fa562343e57463736d650e8557c088cc5ebd30 Mon Sep 17 00:00:00 2001 From: hunili Date: Fri, 26 Apr 2024 15:40:53 +0800 Subject: [PATCH] Modify Tools about PublishFile issue: https://gitee.com/openharmony/filemanagement_app_file_service/issues/I9JXYW Signed-off-by: hunili --- .../backup_tools/backup_tool/tools_op_test.cpp | 12 ++++++------ tools/backup_tool/include/tools_op.h | 3 ++- tools/backup_tool/src/tools_op.cpp | 5 ++++- .../backup_tool/src/tools_op_incremental_restore.cpp | 10 +++++----- .../src/tools_op_incremental_restore_async.cpp | 2 +- tools/backup_tool/src/tools_op_restore.cpp | 2 +- tools/backup_tool/src/tools_op_restore_async.cpp | 2 +- 7 files changed, 20 insertions(+), 16 deletions(-) diff --git a/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp b/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp index 836802a2c..1fc1f4fc2 100644 --- a/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp +++ b/tests/unittests/backup_tools/backup_tool/tools_op_test.cpp @@ -167,28 +167,28 @@ HWTEST_F(ToolsOpTest, SUB_backup_tools_op_0500, testing::ext::TestSize.Level1) try { std::string bundleName = "test"; std::string wholePath = string(BConstants::BACKUP_TOOL_RECEIVE_DIR) + bundleName; - std::string incrementalpath = string(BConstants::BACKUP_TOOL_INCREMENTAL_RECEIVE_DIR) + bundleName; + std::string incrementalpath = string(BConstants::BACKUP_TOOL_INCREMENTAL_RECEIVE_DIR) + + bundleName + "/"+ DEFAULT_TEME + string(BConstants::BACKUP_TOOL_INCREMENTAL); if (access(incrementalpath.c_str(), F_OK) == 0) { ForceRemoveDirectory(incrementalpath.data()); } - int result = ToolsOp::GetFIleNums(bundleName, false); + int result = ToolsOp::GetFileNums(bundleName, DEFAULT_TEME, false); EXPECT_TRUE(result == DEFAULT_ERR_NUMBER); if (access(wholePath.c_str(), F_OK) == 0) { ForceRemoveDirectory(wholePath.data()); } - result = ToolsOp::GetFIleNums(bundleName, true); + result = ToolsOp::GetFileNums(bundleName); EXPECT_TRUE(result == DEFAULT_ERR_NUMBER); - if (access(incrementalpath.c_str(), F_OK) != 0) { ForceCreateDirectory(incrementalpath.data()); } - result = ToolsOp::GetFIleNums(bundleName, false); + result = ToolsOp::GetFileNums(bundleName, DEFAULT_TEME, false); EXPECT_TRUE(result == 0); if (access(wholePath.c_str(), F_OK) != 0) { ForceCreateDirectory(wholePath.data()); } - result = ToolsOp::GetFIleNums(bundleName, true); + result = ToolsOp::GetFileNums(bundleName); EXPECT_TRUE(result == 0); if (access(incrementalpath.c_str(), F_OK) == 0) { ForceRemoveDirectory(incrementalpath.data()); diff --git a/tools/backup_tool/include/tools_op.h b/tools/backup_tool/include/tools_op.h index ca0b49f8d..3d124afb2 100644 --- a/tools/backup_tool/include/tools_op.h +++ b/tools/backup_tool/include/tools_op.h @@ -25,6 +25,7 @@ namespace OHOS::FileManagement::Backup { const int DEFAULT_ERR_NUMBER = -1; +const std::string DEFAULT_TEME = "0"; class ToolsOp { public: using CRefVStrView = const std::vector &; @@ -119,7 +120,7 @@ public: * * @return int 错误码(0 表示成功,非零表示失败) */ - static int GetFIleNums(const std::string &bundleName, bool isWholeRestore = true); + static int GetFileNums(const std::string &bundleName, std::string time = "", bool isWholeRestore = true); private: Descriptor desc_; static inline std::vector opsAvailable_; diff --git a/tools/backup_tool/src/tools_op.cpp b/tools/backup_tool/src/tools_op.cpp index e09865309..d9c00b39b 100644 --- a/tools/backup_tool/src/tools_op.cpp +++ b/tools/backup_tool/src/tools_op.cpp @@ -86,11 +86,14 @@ int ToolsOp::Execute(map> args) const return desc_.funcExec(args); } -int ToolsOp::GetFIleNums(const std::string &bundleName, bool isWholeRestore) +int ToolsOp::GetFileNums(const std::string &bundleName, std::string timeStr, bool isWholeRestore) { std::string path = ""; path = string(isWholeRestore? BConstants::BACKUP_TOOL_RECEIVE_DIR : BConstants::BACKUP_TOOL_INCREMENTAL_RECEIVE_DIR) + bundleName; + if (!isWholeRestore) { + path += std::string("/") + timeStr + std::string(BConstants::BACKUP_TOOL_INCREMENTAL); + } struct dirent *entry; printf("bundle path = %s\n", path.c_str()); DIR *dir = opendir(path.c_str()); diff --git a/tools/backup_tool/src/tools_op_incremental_restore.cpp b/tools/backup_tool/src/tools_op_incremental_restore.cpp index 421afe9a6..5d7004bd2 100644 --- a/tools/backup_tool/src/tools_op_incremental_restore.cpp +++ b/tools/backup_tool/src/tools_op_incremental_restore.cpp @@ -302,16 +302,16 @@ static int32_t Init(const string &pathCapFile, vector bundleNames, bool UniqueFd fd(open(realPath.data(), O_RDWR, S_IRWXU)); auto ctx = make_shared(); - size_t len = bundleNames.size(); - for (size_t i = 0; i < len; ++i) { - ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFIleNums(bundleNames[i], false); - } int32_t ret = InitRestoreSession(ctx, bundleNames, times); if (ret != 0) { printf("Failed to init restore session error:%d\n", ret); return ret; } - + size_t len = bundleNames.size(); + size_t timeLen = times.size(); + for (size_t i = 0, j = 0; i < len && j < timeLen; ++i, ++j) { + ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFileNums(bundleNames[i], times[i], false); + } if (depMode) { for (auto &bundleName : bundleNames) { UniqueFd fileFd(open(realPath.data(), O_RDWR, S_IRWXU)); diff --git a/tools/backup_tool/src/tools_op_incremental_restore_async.cpp b/tools/backup_tool/src/tools_op_incremental_restore_async.cpp index 733007e12..804304bb0 100644 --- a/tools/backup_tool/src/tools_op_incremental_restore_async.cpp +++ b/tools/backup_tool/src/tools_op_incremental_restore_async.cpp @@ -372,7 +372,7 @@ static int32_t InitArg(const string &pathCapFile, auto ctx = make_shared(); size_t len = bundleNames.size(); for (size_t i = 0; i < len; ++i) { - ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFIleNums(bundleNames[i], false); + ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFileNums(bundleNames[i], DEFAULT_TEME, false); } ctx->session_ = BIncrementalSessionRestoreAsync::Init(BIncrementalSessionRestoreAsync::Callbacks { .onFileReady = bind(OnFileReady, ctx, placeholders::_1, placeholders::_2, placeholders::_3), diff --git a/tools/backup_tool/src/tools_op_restore.cpp b/tools/backup_tool/src/tools_op_restore.cpp index a7d09d45c..a15bc799e 100644 --- a/tools/backup_tool/src/tools_op_restore.cpp +++ b/tools/backup_tool/src/tools_op_restore.cpp @@ -280,7 +280,7 @@ static int32_t InitPathCapFile(const string &pathCapFile, vector bundleN auto ctx = make_shared(); size_t len = bundleNames.size(); for (size_t i = 0; i < len; ++i) { - ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFIleNums(bundleNames[i]); + ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFileNums(bundleNames[i]); } int32_t ret = InitRestoreSession(ctx); if (ret != 0) { diff --git a/tools/backup_tool/src/tools_op_restore_async.cpp b/tools/backup_tool/src/tools_op_restore_async.cpp index c7153af7e..80042b78c 100644 --- a/tools/backup_tool/src/tools_op_restore_async.cpp +++ b/tools/backup_tool/src/tools_op_restore_async.cpp @@ -356,7 +356,7 @@ static int32_t InitArg(const string &pathCapFile, auto ctx = make_shared(); size_t len = bundleNames.size(); for (size_t i = 0; i < len; ++i) { - ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFIleNums(bundleNames[i]); + ctx->fileNums_[bundleNames[i]] = ToolsOp::GetFileNums(bundleNames[i]); } ctx->session_ = BSessionRestoreAsync::Init(BSessionRestoreAsync::Callbacks { .onFileReady = bind(OnFileReady, ctx, placeholders::_1, placeholders::_2), -- Gitee