NAP
fileutils.h
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2  * License, v. 2.0. If a copy of the MPL was not distributed with this
3  * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4 
5 #pragma once
6 
7 // Local Includes
8 #include "dllexport.h"
9 #include "errorstate.h"
10 
11 // External Includes
12 #include <string>
13 #include <vector>
14 
15 namespace nap
16 {
17  namespace utility
18  {
19  namespace path
20  {
21 #ifdef _WIN32
22  inline constexpr const char* separator = "\\";
23 #else
24  inline constexpr const char* separator = "/";
25 #endif
26  }
27 
35  bool listDir(const char* directory, std::vector<std::string>& outFilenames, bool absolute=true);
36 
42  bool isAbsolutePath(const std::string& path);
43 
49  std::string getAbsolutePath(const std::string& relPath);
50 
56  std::string getFileExtension(const std::string& filename);
57 
62  std::string getFileName(const std::string& file);
63 
68  std::string getFileDir(const std::string& file);
69 
74  std::string getFileNameWithoutExtension(const std::string& file);
75 
79  void stripFileExtension(std::string& file);
80 
85  std::string stripFileExtension(const std::string& file);
86 
92  std::string appendFileExtension(const std::string& file, const std::string& ext);
93 
99  bool hasExtension(const std::string& file, const std::string& extension);
100 
106  bool fileExists(const std::string& filename);
107 
113  bool dirExists(const std::string& dirName);
114 
121  bool ensureDirExists(const std::string& dirName);
122 
129  bool makeDirs(const std::string& directory);
130 
136  bool deleteFile(const std::string& path);
137 
143  void writeStringToFile(const std::string& filename, const std::string& contents);
144 
152  std::string toComparableFilename(const std::string& filename);
153 
159  bool isFilenameEqual(const std::string& filenameA, const std::string& filenameB);
160 
168  bool getFileModificationTime(const std::string& path, uint64_t& modTime);
169 
173  std::string getExecutablePath();
174 
178  std::string getExecutableDir();
179 
186  bool changeDir(const std::string& newDir);
187 
192  std::string getCWD();
193 
201  bool readFileToString(const std::string& filename, std::string& outBuffer, utility::ErrorState& err);
202 
209  std::string findFileInDirectories(const std::string& filename, const std::vector<std::string>& dirs);
210 
214  std::string joinPath(const std::vector<std::string>& parts);
215 
221  std::string forceSeparator(const std::string& path);
222  }
223 }
nap::utility::getFileDir
std::string getFileDir(const std::string &file)
nap::utility::stripFileExtension
void stripFileExtension(std::string &file)
nap::utility::dirExists
bool dirExists(const std::string &dirName)
nap::utility::fileExists
bool fileExists(const std::string &filename)
nap::utility::ensureDirExists
bool ensureDirExists(const std::string &dirName)
nap::utility::ErrorState
Definition: errorstate.h:19
nap::utility::isFilenameEqual
bool isFilenameEqual(const std::string &filenameA, const std::string &filenameB)
nap::utility::isAbsolutePath
bool isAbsolutePath(const std::string &path)
nap::utility::listDir
bool listDir(const char *directory, std::vector< std::string > &outFilenames, bool absolute=true)
nap::utility::getCWD
std::string getCWD()
nap::utility::getFileName
std::string getFileName(const std::string &file)
nap::utility::deleteFile
bool deleteFile(const std::string &path)
nap::utility::getFileExtension
std::string getFileExtension(const std::string &filename)
nap::utility::changeDir
bool changeDir(const std::string &newDir)
nap::utility::toComparableFilename
std::string toComparableFilename(const std::string &filename)
nap::utility::getExecutablePath
std::string getExecutablePath()
nap::utility::getAbsolutePath
std::string getAbsolutePath(const std::string &relPath)
nap::utility::makeDirs
bool makeDirs(const std::string &directory)
nap::utility::getFileNameWithoutExtension
std::string getFileNameWithoutExtension(const std::string &file)
nap::utility::getFileModificationTime
bool getFileModificationTime(const std::string &path, uint64_t &modTime)
nap::utility::appendFileExtension
std::string appendFileExtension(const std::string &file, const std::string &ext)
nap
Definition: templateapp.h:17
nap::utility::hasExtension
bool hasExtension(const std::string &file, const std::string &extension)
nap::utility::joinPath
std::string joinPath(const std::vector< std::string > &parts)
nap::utility::getExecutableDir
std::string getExecutableDir()
nap::utility::readFileToString
bool readFileToString(const std::string &filename, std::string &outBuffer, utility::ErrorState &err)
nap::utility::findFileInDirectories
std::string findFileInDirectories(const std::string &filename, const std::vector< std::string > &dirs)
nap::utility::forceSeparator
std::string forceSeparator(const std::string &path)
nap::utility::path::separator
constexpr const char * separator
Definition: fileutils.h:24
nap::utility::writeStringToFile
void writeStringToFile(const std::string &filename, const std::string &contents)