我有一个程序,它将文件夹路径作为命令行参数.然后我用文件名连接来访问这些文件.
例如,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将处理路径名中的连续斜杠作为单斜杠.因此,在许多情况下,只需总是添加斜杠而不进行检查就足够了.
归档时间: |
|
查看次数: |
5686 次 |
最近记录: |