diff --git a/services/param/adapter/param_persistadp.c b/services/param/adapter/param_persistadp.c index 7dba4798c8ccaecc8c0d0a9f95e4fc833841d34f..ef75bf6bcee31aa2ad538b194688c98ef564df31 100644 --- a/services/param/adapter/param_persistadp.c +++ b/services/param/adapter/param_persistadp.c @@ -164,7 +164,11 @@ static bool GetPersistFilePath(char **path, char **tmpPath, int fileType) PARAM_LOGE("rename failed %s", PARAM_OLD_PERSIST_SAVE_PATH); } } else { - CheckAndCreateDir(PARAM_PRIVATE_PERSIST_SAVE_PATH); + if (access(PUBLIC_DIR, F_OK) == 0) { + CheckAndCreateDir(PARAM_PRIVATE_PERSIST_SAVE_PATH); + } else { + PARAM_LOGE("public dir not exit, creat param file fail"); + } } *path = PARAM_PRIVATE_PERSIST_SAVE_PATH; *tmpPath = PARAM_PRIVATE_PERSIST_SAVE_TMP_PATH; diff --git a/services/param/include/param_utils.h b/services/param/include/param_utils.h index 63f03e55aafedd99bf51fadb6f952feab79ce2eb..5cab8b711ea22b870469dae0d631f896784d6037 100644 --- a/services/param/include/param_utils.h +++ b/services/param/include/param_utils.h @@ -87,6 +87,7 @@ typedef enum { #define PARAM_PUBLIC_PERSIST_SAVE_TMP_PATH DATA_PATH "tmp_public_persist_parameters" #define PARAM_PRIVATE_PERSIST_SAVE_PATH PRIVATE_DATA_PATH "private_persist_parameters" #define PARAM_PRIVATE_PERSIST_SAVE_TMP_PATH PRIVATE_DATA_PATH "tmp_private_persist_parameters" +#define PUBLIC_DIR "/data/service/el1/public" #define PERSIST_HANDLE_MAX 2 #define WORKSPACE_FLAGS_INIT 0x01