提交 6c25c949 编写于 作者: O openharmony_ci 提交者: Gitee

!35 公共基础库功能扩展

Merge pull request !35 from liubb/master
# Copyright (c) 2020 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cmake_minimum_required(VERSION 3.1.0)
project(nativeapi_storage LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(JSFWK_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../foundation/ace/interfaces/innerkits/builtin")
set(PARAM_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../base/startup/interfaces/kits/syspara_lite")
set(SECUREC_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../third_party/bounds_checking_function/include")
set(ABILITY_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../foundation/aafwk/interfaces/kits/ability_lite")
set(UI_INTERFACES_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../foundation/graphic/lite")
# header files
include_directories(
${PARAM_INTERFACES_PATH}
${SECUREC_INTERFACES_PATH}
${ABILITY_INTERFACES_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/common/include
${CMAKE_CURRENT_SOURCE_DIR}/deviceinfokit/include
${CMAKE_CURRENT_SOURCE_DIR}/filekit/include
${CMAKE_CURRENT_SOURCE_DIR}/kvstorekit/include
)
# source files
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/common/src COMMON)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/deviceinfokit/src DEVICEINFO)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/filekit/src FILEKIT)
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR}/kvstorekit/src KVSTOREKIT)
add_library(utils_jsapi STATIC
${COMMON}
${DEVICEINFO}
${FILEKIT}
${KVSTOREKIT}
)
target_link_libraries(utils_jsapi jsfwk ui)
target_include_directories(utils_jsapi PUBLIC ${ABILITY_INTERFACES_PATH} ${PARAM_INTERFACES_PATH})
\ No newline at end of file
......@@ -24,6 +24,9 @@
#include <sys/types.h>
#include <unistd.h>
#include "nativeapi_config.h"
#if (defined _WIN32 || defined _WIN64)
#include "shlwapi.h"
#endif
#define BUFFER_SIZE 512
......@@ -44,9 +47,16 @@ static bool IsValidPath(const char* path)
static int GetRealPath(const char* originPath, char* trustPath, size_t tPathLen)
{
#if (defined _WIN32 || defined _WIN64)
if (PathCanonicalize(originPath, trustPath) == true) {
return NATIVE_SUCCESS;
}
#else
if (realpath(originPath, trustPath) != NULL) {
return NATIVE_SUCCESS;
}
#endif
if (errno == ENOENT) {
if (strncpy_s(trustPath, tPathLen, originPath, strlen(originPath)) == EOK) {
return NATIVE_SUCCESS;
......@@ -124,7 +134,11 @@ static int MakeParent(const char* path, char* firstPath, size_t fPathLen, int* d
free(fullPath);
return ERROR_CODE_PARAM;
}
#if (defined _WIN32 || defined _WIN64)
ret = mkdir(fullPath);
#else
ret = mkdir(fullPath, S_IRUSR | S_IWUSR | S_IXUSR);
#endif
if ((ret == NATIVE_SUCCESS) && (*dirNum == 1)) {
if ((strcpy_s(firstPath, fPathLen, fullPath) != EOK)) {
free(fullPath);
......@@ -435,7 +449,12 @@ int CreateDirImpl(const char* fileName, bool recursive)
return MkdirRecursive(fileName);
}
if (mkdir(fileName, S_IRUSR | S_IWUSR | S_IXUSR) != NATIVE_SUCCESS) {
#if (defined _WIN32 || defined _WIN64)
int ret = mkdir(fileName);
#else
int ret = mkdir(fileName, S_IRUSR | S_IWUSR | S_IXUSR);
#endif
if (ret != NATIVE_SUCCESS) {
return (-errno);
}
return NATIVE_SUCCESS;
......
......@@ -24,6 +24,9 @@
#include <sys/types.h>
#include <unistd.h>
#include "nativeapi_config.h"
#if (defined _WIN32 || defined _WIN64)
#include "shlwapi.h"
#endif
static char g_kvFolder[FILE_NAME_MAX_LEN + 1] = {0};
......@@ -55,9 +58,16 @@ static int GetKvFolder(const char* dataPath)
static int GetRealPath(const char* originPath, char* trustPath, size_t tPathLen)
{
#if (defined _WIN32 || defined _WIN64)
if (PathCanonicalize(originPath, trustPath) == true) {
return NATIVE_SUCCESS;
}
#else
if (realpath(originPath, trustPath) != NULL) {
return NATIVE_SUCCESS;
}
#endif
if (errno == ENOENT) {
if (strncpy_s(trustPath, tPathLen, originPath, strlen(originPath)) == EOK) {
return NATIVE_SUCCESS;
......@@ -75,9 +85,15 @@ int InitKv(const char* dataPath)
if (access(g_kvFolder, F_OK) == F_OK) {
return NATIVE_SUCCESS;
}
#if (defined _WIN32 || defined _WIN64)
if (mkdir(g_kvFolder) != 0) {
return ERROR_CODE_GENERAL;
}
#else
if (mkdir(g_kvFolder, S_IRUSR | S_IWUSR | S_IXUSR) != 0) {
return ERROR_CODE_GENERAL;
}
#endif
return NATIVE_SUCCESS;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册