PathAppend是一个有用的winapi函数,它允许您在处理任何尾部反斜杠(或缺少反斜杠)时将一条路径附加到另一条路径。
意味着将"/dir1"
追加到"dir2"
,或"/dir1"
追加"/dir2"
,或"/dir1/"
追加"/dir2"
会产生相同的(正确的)结果 - "/dir1/dir2"
(虽然简单的连接会分别产生"/dir1dir2"
,"/dir1/dir2"
和"/dir1//dir2"
)。
是否有任何类似的Qt功能?
答案 0 :(得分:17)
没有该功能,但QDir::cleanPath()
将处理您需要的所有内容,您只需连接路径:
QString appendPath(const QString& path1, const QString& path2)
{
return QDir::cleanPath(path1 + QDir::separator() + path2);
}
我使用QDir::separator()
而不是原始的“/”,但它不是强制性的,因为QT会在内部将该分隔符转换为原生分隔符(如果需要,请参阅Cross-platform way of constructing an FS path with Qt)。
请注意(对于具有.NET背景的人),还有另一个类似的功能:Path.Combine()
,它的表现方式类似到PathAppend()
,但它有所不同。有关其行为的QT 仿真,请参阅Is there a QPath::Combine()?(有关其差异的更详细的概述)。