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/