是否有用于向文件路径添加尾部斜杠的习惯用法?

UXk*_*EZ7 10 c c++ linux

我有一个程序,它将文件夹路径作为命令行参数.然后我用文件名连接来访问这些文件.

例如,folder_path为"./config/",然后file_path为"./config/app.conf",如下所示

stringstream ss;
ss << folder_path << "app.conf";
file_path = ss.str();
Run Code Online (Sandbox Code Playgroud)

但是如果folder_path不包含结尾斜杠,这将不起作用.这似乎是一个常见的问题,所以我想知道是否有一个成语,如果它不存在,最后添加斜杠.

Jas*_*n C 11

我通常这样做,如果路径在名为pathname的std :: string中:

if (!pathname.empty() && *pathname.rbegin() != '/')
    pathname += '/';
Run Code Online (Sandbox Code Playgroud)

或者,使用basic_string :: back():

if (!pathname.empty() && pathname.back() != '/')
    pathname += '/';
Run Code Online (Sandbox Code Playgroud)

如有必要,添加反斜杠的大小写.

补充:另请注意,*nix将处理路径名中的连续斜杠作为单斜杠.因此,在许多情况下,只需总是添加斜杠而不进行检查就足够了.