16

PathAppendは、末尾のバックスラッシュ(またはバックスラッシュの欠如)を処理しながら、あるパスを別のパスに追加できる便利なwinapi関数です。

、、、、またはに追加"/dir1"すると、同じ(正しい)結果が生成されることを意味します- (単純に連結すると、それぞれ、、、およびが生成されます)。"dir2""/dir1""/dir2""/dir1/""/dir2""/dir1/dir2""/dir1dir2""/dir1/dir2""/dir1//dir2"

同様のことをするQt関数はありますか?

4

1 に答える 1

27

その関数はありません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()動作しますが、それは異なります。QPath :: Combine()はありますか?を参照してください。その動作のQTエミュレーション用(およびそれらの違いのもう少し詳細な概要用)。PathAppend()

于 2012-10-22T15:12:04.570 に答える