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