Qt相当于PathAppend?

sas*_*alm 9 c++ qt

PathAppend是一个有用的winapi函数,它允许您在处理任何尾部反斜杠(或缺少反斜杠)时将一条路径附加到另一条路径.

这意味着追加"/dir1""dir2",或者"/dir1""/dir2",或"/dir1/""/dir2"会产生相同的(正确的)结果- "/dir1/dir2"(虽然只是concatening将分别产生"/dir1dir2","/dir1/dir2""/dir1//dir2").

是否有任何Qt功能做类似的事情?

Adr*_*tti 18

没有那个功能,但QDir::cleanPath()会处理你需要的一切,你只需要连接路径:

QString appendPath(const QString& path1, const QString& path2)
{
    return QDir::cleanPath(path1 + QDir::separator() + path2);
}
Run Code Online (Sandbox Code Playgroud)

我使用QDir::separator()而不是原始的"/",但它不是强制性的,因为QT在内部将该分隔符转换为本地分隔符(如果需要,请参阅使用Qt构建FS路径的跨平台方式).

请注意(对于具有.NET背景的人),还有另一个类似的功能:Path.Combine()它的行为某种程度相似,PathAppend()但却有所不同.请参阅是否有QPath :: Combine()?用于QT 仿真其行为(以及稍微更详细的差异概述).