diff --git a/frameworks/native/backup_ext/src/tar_file.cpp b/frameworks/native/backup_ext/src/tar_file.cpp index 80de4451ca0aedf17a65bc47a7298cfefdb2a24e..99adcf7626650d466a8c66eb7de9b3c5e0c8a468 100644 --- a/frameworks/native/backup_ext/src/tar_file.cpp +++ b/frameworks/native/backup_ext/src/tar_file.cpp @@ -302,26 +302,29 @@ bool TarFile::CompleteBlock(off_t size) bool TarFile::FillSplitTailBlocks() { + // write tar file tail + const int END_BLOCK_SIZE = 1024; + vector buff {}; + buff.resize(BLOCK_SIZE); + WriteAll(buff, END_BLOCK_SIZE); + fflush(currentTarFile_); + struct stat staTar {}; int ret = stat(currentTarName_.c_str(), &staTar); if (ret != 0) { HILOGE("Failed to stat file %{public}s, err = %{public}d", currentTarName_.c_str(), errno); return false; } - if (staTar.st_size == 0 && tarFileCount_ > 0 && currentTarFile_ != nullptr) { + + if (staTar.st_size == 0 && tarFileCount_ > 0 && fileCount_ == 0) { fclose(currentTarFile_); currentTarFile_ = nullptr; remove(currentTarName_.c_str()); return true; } - // write tar file tail - const int END_BLOCK_SIZE = 1024; - vector buff {}; - buff.resize(BLOCK_SIZE); - WriteAll(buff, END_BLOCK_SIZE); + tarMap_.emplace(tarFileName_, make_tuple(currentTarName_, staTar, false)); - fflush(currentTarFile_); fclose(currentTarFile_); currentTarFile_ = nullptr; tarFileCount_++; diff --git a/utils/src/b_filesystem/b_dir.cpp b/utils/src/b_filesystem/b_dir.cpp index c8bee3f25b50d83fe94128c19808dc3caf587b8f..01952a48a45730d6dd0ee2f80e9102a11a841d24 100644 --- a/utils/src/b_filesystem/b_dir.cpp +++ b/utils/src/b_filesystem/b_dir.cpp @@ -118,11 +118,10 @@ static tuple, vector> GetDirFilesDetai continue; } if (sta.st_size <= size) { - HILOGI("Find small file %{public}s", fileName.data()); smallFiles.emplace_back(fileName); continue; } - HILOGI("Find big file"); + files.try_emplace(fileName, sta); } } @@ -225,7 +224,6 @@ tuple, vector> BDir::GetBigFiles(const 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.emplace_back(item); } } @@ -233,7 +231,6 @@ tuple, vector> BDir::GetBigFiles(const map bigFiles; for (const auto &item : incFiles) { if (!isMatch(excludes, item.first)) { - HILOGI("file %{public}s matchs include condition and unmatchs exclude condition", item.first.c_str()); bigFiles[item.first] = item.second; } }