我有一个看起来像这样的相对路径和绝对路径:
绝对:/tmp/somedir 相对:另一个目录/file.txt
我想将两个 ( /tmp/somedir/anotherdir/file.txt
) 与QDir连接,但我不太确定这样做的正确方法是什么。
根据以下文档QDir::absoluteFilePath
:
"返回目录中文件的绝对路径名。"
如果我只有一个文件名,这将是理想的,但我也有一个相对路径。我查看了页面上的其他一些功能,但它们似乎都不是我想要的。
我应该使用什么功能?
我有一个看起来像这样的相对路径和绝对路径:
绝对:/tmp/somedir 相对:另一个目录/file.txt
我想将两个 ( /tmp/somedir/anotherdir/file.txt
) 与QDir连接,但我不太确定这样做的正确方法是什么。
根据以下文档QDir::absoluteFilePath
:
"返回目录中文件的绝对路径名。"
如果我只有一个文件名,这将是理想的,但我也有一个相对路径。我查看了页面上的其他一些功能,但它们似乎都不是我想要的。
我应该使用什么功能?
我想你正在寻找filePath()
.
QString finalPath = QDir("/tmp/somedir").filePath("anotherdir/file.txt");
如果相对文件路径以点开头,则添加少量:
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"