C++有没有与python的os.path.join
函数等效的函数?基本上,我正在寻找将文件路径的两个(或更多)部分组合在一起的东西,这样你就不必担心确保这两个部分完美地结合在一起。如果它是用Qt写的,那也很酷。
基本上,我花了一个小时调试一些代码,至少部分原因是因为root + filename
必须是root/ + filename
,我希望在未来避免这种情况。
发布于 2011-06-10 03:08:30
请查看QDir:
QString path = QDir(dirPath).filePath(fileName);
发布于 2011-06-10 02:57:15
仅作为Boost.Filesystem库的一部分。下面是一个示例:
#include <iostream>
#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;
int main ()
{
fs::path dir ("/tmp");
fs::path file ("foo.txt");
fs::path full_path = dir / file;
std::cout << full_path << std::endl;
return 0;
}
以下是编译和运行(特定于平台)的示例:
$ g++ ./test.cpp -o test -lboost_filesystem -lboost_system
$ ./test
/tmp/foo.txt
发布于 2011-06-10 03:11:46
至少在Unix / Linux中,通过/
连接部分路径总是安全的,即使路径的某些部分已经以/
结尾,即root/path
等同于root//path
。
在这种情况下,你真正需要做的就是在/
上加入一些东西。也就是说,我同意其他答案,如果你可以使用boost::filesystem
,那么它是一个很好的选择,因为它支持多种平台。
https://stackoverflow.com/questions/6297738
复制相似问题