我有一个程序将文件夹路径作为命令行参数。然后我将其与文件名连接起来以访问这些文件。
例如,folder_path 是“./config/” 然后 file_path 将是“./config/app.conf”,如下所示
stringstream ss;
ss << folder_path << "app.conf";
file_path = ss.str();
但如果 folder_path 不包含结尾斜杠,这将不起作用。这似乎是一个常见问题,所以我想知道是否有在末尾添加斜线的习语,如果它不存在的话。
最佳答案
如果路径在名为路径名的 std::string 中,我通常会这样做:
if (!pathname.empty() && *pathname.rbegin() != '/')
pathname += '/';
或者,使用 basic_string::back():
if (!pathname.empty() && pathname.back() != '/')
pathname += '/';
如有必要,请为反斜杠添加大小写。
补充:另请注意,*nix 会将路径名中的连续斜杠作为单个斜杠处理。所以在很多情况下,只添加斜线而不检查就足够了。
关于c++ - 是否有用于向文件路径添加尾部斜杠的习惯用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027874/