blob: cc94afa3ec3da476ed2025f5d212974c6fc090f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
//
// Created by martial.simon on 2/25/25.
//
#include "windows_path.hh"
#include <sstream>
WindowsPath::WindowsPath(char drive)
: Path()
{
path_.push_back(std::string{ drive } + std::string{ ':' });
}
std::string WindowsPath::to_string() const
{
if (path_.empty())
return "";
std::ostringstream os;
os << path_[0];
for (size_t i = 1; i < path_.size(); i++)
{
os << "\\" << path_[i];
}
if (!final_)
os << "\\";
return os.str();
}
Path& WindowsPath::join(const std::string& tail, bool is_file)
{
// :, ", |, ?, *
if (tail.find(':') != std::string::npos
|| tail.find('\"') != std::string::npos
|| tail.find('|') != std::string::npos
|| tail.find('?') != std::string::npos
|| tail.find('*') != std::string::npos)
return *this;
return Path::join(tail, is_file);
}
|