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

코드가 정상적으로 작동합니다. 그러나 absolutePath()는 경로 만이 아니라 경로 + 파일 이름을 반환합니다.QDir 절대 경로가 여전히 파일 이름을 반환 중

C : /Users/Blastcore/Desktop/text.txt 대신 단지 C의 :/사용자/Blastcore/데스크탑

어떤 생각?

+5

작동하는 것 같군 대신 QDir' [http://doc.qt.digia.com/qt/qfileinfo.html#absolutePath] – Kirween

+0

그래'의 QFileInfo','으로 시도 . 고맙습니다. – Blastcore

+1

직관적으로,'QDir' **는 ** 파일에 대한 경로를 보유 할 수 있습니다 **. 파일이 아닌 디렉토리를 선택해야한다면'getOpenFileName()'대신'getExistingDirectory()'를 사용해야한다. 특정 장소에서만 dir이 필요하면 Kirween이 제안한대로'QFileInfo'를 사용하십시오. – TC1

답변

0

QDir 대신 QFileInfo을 사용할 수 있습니다. 당신의 예제 :

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