📄 pathutils.h
字号:
#ifndef UTILS_BASE_PATHUTILS_H_#define UTILS_BASE_PATHUTILS_H_#include <string>namespace utils_base {///////////////////////////////////////////////////////////////////////////////// Pathname - parsing of pathnames into components, and vice versa.//// To establish consistent terminology, a filename never contains a folder// component. A folder never contains a filename. A pathname may include// a folder and/or filename component. Here are some examples://// pathname() /home/john/example.txt// folder() /home/john/// filename() example.txt// parent_folder() /home/// folder_name() john/// basename() example// extension() .txt//// Basename may begin, end, and/or include periods, but no folder delimiters.// If extension exists, it consists of a period followed by zero or more// non-period/non-delimiter characters, and basename is non-empty.///////////////////////////////////////////////////////////////////////////////class Pathname {public: // Folder delimiters are slash and backslash static bool IsFolderDelimiter(char ch); Pathname(); Pathname(const std::string& pathname); // Set's the default folder delimiter for this Pathname char folder_delimiter() const { return folder_delimiter_; } void SetFolderDelimiter(char delimiter); // Normalize changes all folder delimiters to folder_delimiter() void Normalize(); // Reset to the empty pathname void clear(); std::string url() const; std::string pathname() const; void SetPathname(const std::string& pathname); // Append pathname to the current folder (if any). Any existing filename // will be discarded. void AppendPathname(const Pathname& pathname); std::string folder() const; std::string folder_name() const; std::string parent_folder() const; // SetFolder and AppendFolder will append a folder delimiter, if needed. void SetFolder(const std::string& folder); void AppendFolder(const std::string& folder); std::string basename() const; void SetBasename(const std::string& basename); std::string extension() const; // SetExtension will prefix a period, if needed. void SetExtension(const std::string& extension); std::string filename() const; void SetFilename(const std::string& filename);private: std::string folder_, basename_, extension_; char folder_delimiter_;};///////////////////////////////////////////////////////////////////////////////} // namespace utils_base#endif // UTILS_BASE_PATHUTILS_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -