Biorbd
Path.h
1 #ifndef BIORBD_UTILS_PATH_H
2 #define BIORBD_UTILS_PATH_H
3 
4 #include <memory>
5 #ifdef _WIN32
6 #include <string>
7 #endif
8 #include "biorbdConfig.h"
9 
10 namespace biorbd {
11 namespace utils {
12 class String;
16 class BIORBD_API Path
17 {
18 public:
22  Path();
23 
28  Path(
29  const char* path);
30 
35  Path(
36  const biorbd::utils::String& path);
37 
42  Path(
43  const std::basic_string<char>& path);
44 
49  biorbd::utils::Path DeepCopy() const;
50 
55  void DeepCopy(
56  const biorbd::utils::Path& other);
57 
65  static void parseFileName(
66  const biorbd::utils::String& path,
67  biorbd::utils::String& folder,
68  biorbd::utils::String& filename,
70 
71 #ifndef SWIG
72  bool isFileExist() const;
77 
83  static bool isFileExist(
84  const biorbd::utils::Path& path);
85 #endif
86 
92  static bool isFileExist(
93  const biorbd::utils::String& path);
94 
99  bool isFileReadable() const;
100 
101 #ifndef SWIG
102  bool isFolderExist() const;
107 
113  static bool isFolderExist(
114  const biorbd::utils::Path& path);
115 #endif
116 
122  static bool isFolderExist(
123  const biorbd::utils::String& path);
124 
128  void createFolder() const;
129 
134  static biorbd::utils::String currentDir();
135 
140  biorbd::utils::String relativePath() const;
141 
142 #ifndef SWIG
143  biorbd::utils::String relativePath(
149  const biorbd::utils::String &relativeTo) const;
150 
157  static biorbd::utils::String relativePath(
158  const biorbd::utils::Path &path,
159  const biorbd::utils::String &relativeTo);
160 
169  static biorbd::utils::String absoluteFolder(
170  const biorbd::utils::Path &path);
171 
176  biorbd::utils::String absoluteFolder() const;
177 
178 #endif
179 
184  biorbd::utils::String absolutePath() const;
185 
191  static biorbd::utils::String toUnixFormat(
192  const biorbd::utils::String& path);
193 
199  static biorbd::utils::String toWindowsFormat(
200  const biorbd::utils::String& path);
201 
206  const biorbd::utils::String& originalPath() const;
207 
212  const biorbd::utils::String& folder() const;
213 
218  void setFilename(
219  const biorbd::utils::String& name);
220 
225  const biorbd::utils::String& filename() const;
226 
231  void setExtension(
232  const biorbd::utils::String& ext);
233 
238  const biorbd::utils::String& extension() const;
239 
240 
241 protected:
245  void setIsFolderAbsolute();
246 
247  std::shared_ptr<biorbd::utils::String> m_originalPath;
248  std::shared_ptr<biorbd::utils::String> m_folder;
249  std::shared_ptr<bool> m_isFolderAbsolute;
250  std::shared_ptr<biorbd::utils::String> m_filename;
251  std::shared_ptr<biorbd::utils::String> m_extension;
252 };
253 
254 }}
255 
256 #endif // BIORBD_UTILS_PATH_H
biorbd::utils::Path::m_extension
std::shared_ptr< biorbd::utils::String > m_extension
The extension.
Definition: Path.h:251
biorbd::utils::Path::m_folder
std::shared_ptr< biorbd::utils::String > m_folder
The folder.
Definition: Path.h:248
biorbd::utils::Path::m_originalPath
std::shared_ptr< biorbd::utils::String > m_originalPath
The original path at construction time.
Definition: Path.h:247
biorbd::utils::String
Wrapper around the std::string class with augmented functionality.
Definition: String.h:17
biorbd::utils::Path
Collection of methods to manipulate path.
Definition: Path.h:17
biorbd::utils::Path::m_isFolderAbsolute
std::shared_ptr< bool > m_isFolderAbsolute
If folder is absolute.
Definition: Path.h:249
biorbd::utils::Path::m_filename
std::shared_ptr< biorbd::utils::String > m_filename
The filename.
Definition: Path.h:250