void *user_data,
int *id);
+
+/**
+ * @platform
+ * @brief Clears a data in given relative file path of user directories used by applications in the given package.
+ * @details A file or directory specified with the @a file_path stored in data directories used by applications in the package specified with the @a package_id are removed.
+ * @since_tizen 7.5
+ * @privlevel platform
+ * @privilege %http://tizen.org/privilege/packagemanager.admin
+ * @param[in] package_id The package ID
+ * @param[in] file_path The file path that is relative path from the given package user data directory.
+ * @return @c 0 on success,
+ * otherwise a negative error value
+ * @retval #PACKAGE_MANAGER_ERROR_NONE Successful
+ * @retval #PACKAGE_MANAGER_ERROR_PERMISSION_DENIED Permission denied
+ * @retval #PACKAGE_MANAGER_ERROR_INVALID_PARAMETER Invalid parameter
+ * @retval #PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE No such package
+ * @retval #PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY Out of memory
+ * @retval #PACKAGE_MANAGER_ERROR_IO_ERROR I/O error
+ * @retval #PACKAGE_MANAGER_ERROR_SYSTEM_ERROR Severe system error
+ */
+int package_manager_clear_user_data_with_path(const char *package_id, const char *file_path);
+
/**
* @}
*/
return PACKAGE_MANAGER_ERROR_NONE;
}
+
+API int package_manager_clear_user_data_with_path(const char *package_id,
+ const char *file_path)
+{
+ int retval;
+ pkgmgr_client *pc = NULL;
+ char *pkg_type = NULL;
+ pkgmgrinfo_pkginfo_h pkginfo = NULL;
+
+ if (package_id == NULL || file_path == NULL)
+ return PACKAGE_MANAGER_ERROR_INVALID_PARAMETER;
+
+ retval = pkgmgrinfo_pkginfo_get_pkginfo(package_id, &pkginfo);
+ if (retval == PMINFO_R_ENOENT)
+ return PACKAGE_MANAGER_ERROR_NO_SUCH_PACKAGE;
+ if (retval != PMINFO_R_OK || pkginfo == NULL)
+ return PACKAGE_MANAGER_ERROR_SYSTEM_ERROR;
+
+ retval = pkgmgrinfo_pkginfo_get_type(pkginfo, &pkg_type);
+ if (retval != PMINFO_R_OK || pkg_type == NULL) {
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+ return PACKAGE_MANAGER_ERROR_SYSTEM_ERROR;
+ }
+
+ pc = pkgmgr_client_new(PC_REQUEST);
+ if (pc == NULL) {
+ _LOGE("Out of memory");
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+ return PACKAGE_MANAGER_ERROR_OUT_OF_MEMORY;
+ }
+
+ retval = pkgmgr_client_clear_user_data_with_path(pc, pkg_type,
+ package_id, file_path, PM_QUIET);
+ pkgmgr_client_free(pc);
+ pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo);
+
+ if (retval < 0) {
+ retval = package_manager_convert_internal_error(retval);
+ return package_manager_error(retval, __FUNCTION__, NULL);
+ }
+
+ return PACKAGE_MANAGER_ERROR_NONE;
+}
+
API int package_manager_clear_all_cache_dir(void)
{
int retval;