Resolving entry names
Some more string manipulation fluff
This commit is contained in:
parent
dc731f6a31
commit
0d0b406acf
|
@ -126,4 +126,28 @@ std::string fix_path_separators(const std::string& source, char new_sep) {
|
|||
return dest;
|
||||
}
|
||||
|
||||
std::string find_name_from_path(const std::string& path)
|
||||
{
|
||||
std::string name(path);
|
||||
|
||||
if (!path.empty()) {
|
||||
std::string::size_type from(std::string::npos);
|
||||
if (path.back() == '\\') {
|
||||
from = path.size() - 2;
|
||||
}
|
||||
|
||||
auto pos(path.find_last_of('\\', from));
|
||||
if (pos != std::string::npos) {
|
||||
if (from == std::string::npos) {
|
||||
name = path.substr(pos + 1);
|
||||
} else {
|
||||
auto len(from - pos);
|
||||
name = path.substr(pos + 1, len);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
} // namespace poly
|
||||
|
|
|
@ -48,6 +48,9 @@ std::wstring fix_path_separators(const std::wstring& source,
|
|||
std::string fix_path_separators(const std::string& source,
|
||||
char new_sep = poly::path_separator);
|
||||
|
||||
// Find the top directory name or filename from a path
|
||||
std::string find_name_from_path(const std::string& path);
|
||||
|
||||
} // namespace poly
|
||||
|
||||
#endif // POLY_STRING_H_
|
||||
|
|
|
@ -23,8 +23,7 @@ Entry::Entry(Device* device, const std::string& path)
|
|||
: device_(device), path_(path) {
|
||||
assert_not_null(device);
|
||||
absolute_path_ = device->path() + path;
|
||||
// TODO(benvanik): last index of \, unless \ at end, then before that
|
||||
name_ = "";
|
||||
name_ = poly::find_name_from_path(path);
|
||||
}
|
||||
|
||||
Entry::~Entry() = default;
|
||||
|
|
Loading…
Reference in New Issue