PathAppend是一个有用的winapi函数,可让您在处理任何结尾的反斜杠(或缺少反斜杠)时将一个路径附加到另一路径。

意味着将"/dir1"附加到"dir2""/dir1"附加到"/dir2""/dir1/"附加到"/dir2"会产生相同(正确)的结果-"/dir1/dir2"(虽然简单地串联将分别产生"/dir1dir2""/dir1/dir2""/dir1//dir2")。

有没有做类似事情的Qt函数?

最佳答案

没有该功能,但是QDir::cleanPath()可以处理您需要的所有内容,您只需连接路径即可:

QString appendPath(const QString& path1, const QString& path2)
{
    return QDir::cleanPath(path1 + QDir::separator() + path2);
}

我使用了QDir::separator()而不是原始的“/”,但这不是强制性的,因为QT在内部将该分隔符转换为 native 分隔符(如果需要,请参见Cross-platform way of constructing an FS path with Qt)。

请注意(对于具有.NET背景的用户)还有另一个类似的功能:Path.Combine(),它的行为在某种程度上类似于PathAppend(),但有所不同。有关其行为的QT模拟(请参见Is there a QPath::Combine()?)(以及对其差异的更为详细的概述)。

关于c++ - Qt相当于PathAppend吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13014145/

10-13 02:35