# copy_test **Repository Path**: whd_workSpace/copy_test ## Basic Information - **Project Name**: copy_test - **Description**: No description available - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-02 - **Last Updated**: 2025-09-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` static bool CheckConvertFormatAsset(std::shared_ptr rdbStore, std::shared_ptr resultSet, const std::string &newTitle) { int32_t position = GetInt32Val(PhotoColumn::PHOTO_POSITION, resultSet); if (position == static_cast(PhotoPositionType::CLOUD)) { MEDIA_ERR_LOG("pure cloud asset is invalid"); return false; } int32_t isTemp = GetInt32Val(PhotoColumn::PHOTO_IS_TEMP, resultSet); if (isTemp != 0) { MEDIA_ERR_LOG("isTemp: %{public}d is invalid", isTemp); return false; } int64_t timePending = GetInt64Val(MediaColumn::MEDIA_TIME_PENDING, resultSet); if (timePending != 0) { MEDIA_ERR_LOG("timePending: %{public}ld is invalid", timePending); return false; } int32_t hidden = GetInt32Val(MediaColumn::MEDIA_HIDDEN, resultSet); if (hidden != 0) { MEDIA_ERR_LOG("hidden: %{public}d is invalid", hidden); return false; } int64_t dateTrashed = GetInt64Val(MediaColumn::MEDIA_DATE_TRASHED, resultSet); int64_t dateDeleted = GetInt64Val(MediaColumn::MEDIA_DATE_DELETED, resultSet); if (dateTrashed != 0 || dateDeleted != 0) { MEDIA_ERR_LOG("dateTrashed: %{public}ld, dateDeleted: %{public}ld is invalid", dateTrashed, dateDeleted); return false; } return true; } std::shared_ptr MediaLibraryAlbumFusionUtils::ConvertFormatAsset(const int64_t &assetId, const std::string &title, const std::string &extension) { auto rdbStore = MediaLibraryUnistoreManager::GetInstance().GetRdbStore(); if (rdbStore == nullptr) { MEDIA_ERR_LOG("Failed to get rdbStore."); return nullptr; } const std::string querySql = "SELECT * FROM Photos WHERE file_id = ?"; std::vector params = { assetId }; shared_ptr resultSet = rdbStore->QuerySql(querySql, params); if (resultSet == nullptr || resultSet->GoToFirstRow() != NativeRdb::E_OK) { MEDIA_INFO_LOG("Query not matched data fails"); return nullptr; } if (!CheckConvertFormatAsset(rdbStore, resultSet, title)) { MEDIA_ERR_LOG("CheckConvertFormatAsset failed"); return nullptr; } auto assetRefresh = make_shared( AccurateRefresh::CONVERT_FORMAT_ASSET_BUSSINESS_NAME); string displayName = title + "." + extension; int64_t newAssetId = -1; std::string targetPath; int32_t err = ConvertFormatFileSync(rdbStore, assetRefresh, resultSet, displayName, newAssetId, targetPath); if (err != E_OK) { MEDIA_ERR_LOG("ConvertFormatFileSync failed, ret = %{public}d, assetId = %{public}ld", err, assetId); return nullptr; } RdbPredicates newPredicates(PhotoColumn::PHOTOS_TABLE); newPredicates.EqualTo(PhotoColumn::MEDIA_ID, newAssetId); std::vector columns = { MediaColumn::MEDIA_ID, MediaColumn::MEDIA_NAME, MediaColumn::MEDIA_FILE_PATH, MediaColumn::MEDIA_TITLE, MediaColumn::MEDIA_TYPE, PhotoColumn::PHOTO_SUBTYPE }; shared_ptr newResultSet = rdbStore->Query(newPredicates, columns); if (newResultSet == nullptr) { MEDIA_INFO_LOG("Query not matched data fails"); return nullptr; } std::string newFileAssetUri = MediaFileUtils::GetFileAssetUri(targetPath, displayName, newAssetId); SendNewAssetNotify(newFileAssetUri, rdbStore, assetRefresh); MEDIA_INFO_LOG("ConvertFormatAsset success, newAssetId = %{public}ld", newAssetId); return newResultSet; } ```