PathAppend是一个有用的 winapi 函数,可让您在处理任何尾随反斜杠(或缺少反斜杠)的同时将一条路径附加到另一条路径。
这意味着附加"/dir1"
到"dir2"
、 或或"/dir1"
将产生相同(正确)的结果 - (而简单地连接将分别产生、和)。"/dir2"
"/dir1/"
"/dir2"
"/dir1/dir2"
"/dir1dir2"
"/dir1/dir2"
"/dir1//dir2"
有没有做类似事情的 Qt 函数?
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 在内部将该分隔符转换为本机分隔符(如果需要,请参阅使用 Qt 构建 FS 路径的跨平台方式)。
请注意(对于具有 .NET 背景的人)还有另一个类似的功能: ,它的行为在Path.Combine()
某种程度上类似于PathAppend()
但它不同。请参阅是否有 QPath::Combine()?对于其行为的 QT仿真(以及稍微更详细地概述它们的差异)。