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 #if _WIN32
8 typedef int mode_t;
9 #endif
10 
11 namespace athena
12 {
13 class Dir
14 {
15 public:
16  explicit Dir(const std::string& path);
17 
18  std::string absolutePath() const;
19  static inline std::string absolutePath(const std::string& path)
20  { return Dir(path).absolutePath(); }
21 
22  bool isDir() const;
23  static bool isDir(const std::string dir)
24  { return Dir(dir).isDir(); }
25 
26  std::vector<FileInfo> files() const;
27 
28  bool cd(const std::string& path);
29  bool rm(const std::string& path);
30  bool touch();
31  static bool mkdir(const std::string& dir, mode_t mode = 0755);
32  static bool mkpath(const std::string& path, mode_t mode = 0755);
33 private:
34  std::string m_path;
35 };
36 }
37 
38 #endif // DIR_HPP