1 /*
2  * Copyright (c) 2022 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 #ifndef HIAPPEVENT_FRAMEWORKS_NATIVE_LIB_HIAPPEVENT_UTILITY_FILE_UTIL_H
16 #define HIAPPEVENT_FRAMEWORKS_NATIVE_LIB_HIAPPEVENT_UTILITY_FILE_UTIL_H
17 
18 #include <cstdint>
19 #include <string>
20 #include <vector>
21 #include <sys/stat.h>
22 
23 namespace OHOS {
24 namespace HiviewDFX {
25 namespace FileUtil {
26 bool IsFileExists(const std::string& file);
27 bool IsFile(const std::string& file);
28 bool IsDirectory(const std::string& dir);
29 bool RemoveFile(const std::string& file);
30 bool RemoveDirectory(const std::string& dir);
31 bool ForceCreateDirectory(const std::string& dir);
32 bool ForceRemoveDirectory(const std::string& dir, bool isDeleteSelf = true);
33 void GetDirFiles(const std::string& dir, std::vector<std::string>& files);
34 uint64_t GetDirSize(const std::string& dir);
35 uint64_t GetFileSize(const std::string& file);
36 bool ChangeMode(const std::string& file, const mode_t& mode);
37 bool CreateFile(const std::string& file, const mode_t& mode);
38 bool SaveStringToFile(const std::string& file, const std::string& content, bool isTrunc = false);
39 std::string GetFilePathByDir(const std::string& dir, const std::string& fileName);
40 bool LoadLinesFromFile(const std::string& filePath, std::vector<std::string>& lines);
41 bool SetDirXattr(const std::string& dir, const std::string& name, const std::string& value);
42 } // namespace FileUtil
43 } // namespace HiviewDFX
44 } // namespace OHOS
45 #endif // HIAPPEVENT_FRAMEWORKS_NATIVE_LIB_HIAPPEVENT_UTILITY_FILE_UTIL_H
46