Athena IO Library
Dir.hpp
1 #ifndef DIR_HPP
2 #define DIR_HPP
3 
4 #include "Athena/FileInfo.hpp"
5 #include <stdio.h>
6 
7 namespace Athena
8 {
9 class Dir
10 {
11 public:
12  explicit Dir(const std::string& path);
13 
14  std::string absolutePath() const;
15  static inline std::string absolutePath(const std::string& path)
16  { return Dir(path).absolutePath(); }
17 
18  bool isDir() const;
19  static bool isDir(const std::string dir)
20  { return Dir(dir).isDir(); }
21 
22  std::vector<FileInfo> files() const;
23 
24  bool cd(const std::string& path);
25  bool rm(const std::string& path);
26  bool touch();
27  static bool mkdir(const std::string& dir, mode_t mode = 0755);
28  static bool mkpath(const std::string& path, mode_t mode = 0755);
29 private:
30  std::string m_path;
31 };
32 }
33 
34 #endif // DIR_HPP