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

代碼工作正常。但是absolutePath()仍然返回路徑+文件名而不是唯一路徑。QDir的absolutePath仍然返回文件名

C:/Users/Blastcore/Desktop/text.txt而不僅僅是C:/用戶/ Blastcore /桌面

任何想法?

+5

與'QFileInfo',而不是'QDir' [http://doc.qt.digia.com/qt/qfileinfo.html#absolutePath] – Kirween

+0

是啊,這似乎是工作嘗試。謝謝。 – Blastcore

+1

反直覺地說,'QDir' **可以保存文件的路徑。如果您需要選擇一個目錄,而不是文件,則應該使用'getExistingDirectory()'而不是'getOpenFileName()'。如果你只需要該特定位置的目錄,請使用Kirween建議的'QFileInfo'。 – TC1

回答

0

您可以使用QFileInfo而不是QDir。你的榜樣:

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