如何用QDir连接绝对路径和相对路径?

时间:2012-07-28 02:40:32

标签: qt filenames relative-path absolute-path qdir

我有一个相对路径和绝对路径,看起来像这样:

Absolute: /tmp/somedir
Relative: anotherdir/file.txt

我想将两个(/tmp/somedir/anotherdir/file.txt)与QDir连接起来,但我不太确定这样做的正确方法是什么。

根据QDir::absoluteFilePath的文档:

  

“返回目录中文件的绝对路径名。”

如果我所拥有的只是一个文件名,这将是理想的,但我也有一个相对路径。我查看了页面上的其他一些功能,但它们似乎都不是我想要的。

我应该使用什么功能?

2 个答案:

答案 0 :(得分:23)

我认为您正在寻找filePath()

QString finalPath = QDir("/tmp/somedir").filePath("anotherdir/file.txt");

答案 1 :(得分:0)

相对文件路径以点开头的小加法:

QString absoluteDirPath = "/tmp/somedir";
QString relativeFilePath = "./anotherdir/file.txt";

QString incorrectPath = QDir{absoluteDirPath}.filePath(relativeFilePath);
qDebug() << "incorrect path:" << incorrectPath;
QString correctPath = QFileInfo{incorrectPath}.absoluteFilePath(); // removes the .
qDebug() << "correct path:" << correctPath;

输出:

incorrect path: "/tmp/somedir/./anotherdir/file.txt"
correct path: "/tmp/somedir/anotherdir/file.txt"