QDir的absolutePath仍然返回文件名

3
QString FilePath2 = QFileDialog::getOpenFileName(this, tr("Open Directory"), "C:/", tr("Text files (*.txt)"));
QDir a = FilePath2;
qDebug() << a.absolutePath();

代码正常运行。但是absolutePath()仍然返回路径+文件名,而不是仅返回路径。

C:/Users/Blastcore/Desktop/text.txt而不仅仅是C:/Users/Blastcore/Desktop

有什么想法吗?


5
尝试使用QFileInfo代替QDir,详见[http://doc.qt.digia.com/qt/qfileinfo.html#absolutePath]。 - Kirween
1
相反地,QDir 可以 持有文件路径。如果您需要选择目录而不是文件,则应使用 getExistingDirectory() 而不是 getOpenFileName()。如果您只需要该特定位置的目录,请像 Kirween 建议的那样使用 QFileInfo - TC1
1个回答

0

您可以使用QFileInfo代替QDir。举个例子:

QString FilePath2 = QFileDialog::getOpenFileName(this, tr("Open Directory"), "C:/", tr("Text files (*.txt)"));
QFileInfo a(FilePath2);
qDebug() << a.absolutePath();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接