Mercurial > minori
comparison src/core/filesystem.cpp @ 59:327e9a5c72f1
filesystem: add basename and stem functions
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Thu, 28 Sep 2023 13:45:45 -0400 |
parents | 4b05bc7668eb |
children | d417e9381ca5 |
comparison
equal
deleted
inserted
replaced
58:b7a1c0010ffd | 59:327e9a5c72f1 |
---|---|
20 #include "core/config.h" | 20 #include "core/config.h" |
21 #include <limits.h> | 21 #include <limits.h> |
22 | 22 |
23 namespace Filesystem { | 23 namespace Filesystem { |
24 | 24 |
25 bool CreateDirectories(std::string path) { | 25 bool CreateDirectories(const std::string& path) { |
26 std::string temp = ""; | 26 std::string temp = ""; |
27 size_t start; | 27 size_t start; |
28 size_t end = 0; | 28 size_t end = 0; |
29 temp.append(path.substr(0, path.find_first_not_of(DELIM, end))); | 29 temp.append(path.substr(0, path.find_first_not_of(DELIM, end))); |
30 | 30 |
43 temp.append(DELIM); | 43 temp.append(DELIM); |
44 } | 44 } |
45 return true; | 45 return true; |
46 } | 46 } |
47 | 47 |
48 bool Exists(std::string path) { | 48 bool Exists(const std::string& path) { |
49 #if WIN32 | 49 #if WIN32 |
50 return GetFileAttributes(path.c_str()) != INVALID_FILE_ATTRIBUTES; | 50 return GetFileAttributes(path.c_str()) != INVALID_FILE_ATTRIBUTES; |
51 #else | 51 #else |
52 struct stat st; | 52 struct stat st; |
53 return stat(path.c_str(), &st) == 0; | 53 return stat(path.c_str(), &st) == 0; |
54 #endif | 54 #endif |
55 } | 55 } |
56 | 56 |
57 std::string GetParentDirectory(std::string path) { | 57 std::string Basename(const std::string& path) { |
58 size_t pos = 0; | 58 return path.substr(0, path.find_last_of(DELIM)); |
59 pos = path.find_last_of(DELIM); | 59 } |
60 return path.substr(0, pos); | 60 |
61 std::string Stem(const std::string& path) { | |
62 std::string basename = Basename(path); | |
63 return basename.substr(0, path.find_last_of(".")); | |
64 } | |
65 | |
66 std::string GetParentDirectory(const std::string& path) { | |
67 return path.substr(0, path.find_last_of(DELIM)); | |
61 } | 68 } |
62 | 69 |
63 std::string GetDotPath(void) { | 70 std::string GetDotPath(void) { |
64 std::string ret = ""; | 71 std::string ret = ""; |
65 #ifdef WIN32 | 72 #ifdef WIN32 |