【问题标题】:QDir absolutePath still returning the filenameQDir absolutePath 仍然返回文件名
【发布时间】:2012-12-09 01:42:53
【问题描述】:
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

有什么想法吗?

【问题讨论】:

  • 尝试使用QFileInfo 而不是QDir [doc.qt.digia.com/qt/qfileinfo.html#absolutePath]
  • 是的,这似乎有效。谢谢。
  • 与直觉相反,QDir 可以保存文件的路径。如果你需要选择一个目录,而不是一个文件,你应该使用getExistingDirectory() 而不是getOpenFileName()。如果您只需要该特定位置的目录,请按照 Kirween 的建议使用 QFileInfo

标签: qt qfiledialog qdir


【解决方案1】:

您可以使用QFileInfo 代替QDir。用你的例子:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多