/* * Copyright (c) 2020.Huawei Technologies Co., Ltd. All rights reserved. * 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. */ #ifndef FILEMANAGER_H #define FILEMANAGER_H #ifdef _WIN32 #include #include #include #include #else #include #include #include #include #include #endif #include #include #include #include #include #include #include #include #include "CommonDataType.h" #include "Log.h" #include "ErrorCode.h" #ifdef _WIN32 #define access _access #endif #define BUF_SIZE 32U // Max buffer size const int TWO = 2; static const std::string SLASH = "/"; // delimiter used to split path #ifndef _WIN32 mode_t SetFileDefaultUmask(); mode_t SetFileUmask(mode_t newUmask); #endif APP_ERROR GetRealPath(const std::string &srcPath, std::string &resolvedPath); APP_ERROR ExistFile(const std::string &filePath); std::vector SplitPath(const std::string &str, const std::set delimiters); APP_ERROR CreateDir(const std::string &dirPath); void CreateDirRecursively(const std::string &file); void CreateDirRecursivelyByFile(const std::string &file); APP_ERROR ReadFile(const std::string &filePath, RawData &fileData); APP_ERROR ReadFileWithOffset(const std::string &fileName, RawData &fileData, const uint32_t offset); APP_ERROR ReadBinaryFile(const std::string &fileName, std::shared_ptr &buffShared, int &buffLength); std::string GetExtension(const std::string &filePath); std::string GetName(const std::string &filePath); std::string GetParent(const std::string &filePath); APP_ERROR ChangeDir(const std::string &dir); void SaveFileAppend(const std::string &fileName, const std::string &stream, const int streamLength); void SaveFileOverwrite(const std::string &fileName, const std::string &stream, const int streamLength); void CopyFile(const std::string &srcFile, const std::string &destFile); APP_ERROR SaveFileWithTimeStamp(std::shared_ptr imageBuffer, uint32_t bufferSize, std::string folderName, std::string fileName, std::string fileSuffix); void GetCurTimeString(std::string &timeString); #endif