2016-03-07 496 views
-2

我想通過對話框文件打開文件,然後將文件路徑存儲到文本文件中。 問題是,當我使用absoluteFilePath()函數時出現錯誤。這裏是我的代碼:將文件路徑存儲到QString [Qt]

filename = QFileDialog::getOpenFileName(this, "Open File","*.H86;;*.glo"); 

//enregistrer le dernier chemin utilisé pour ouvrir un fichier 
FILE* fichier = NULL; 
fichier = fopen("LastPath.txt","w"); 
if(fichier != NULL) 
{ 

    QString filename_fichier_choisi = filename.QFileInfo::absoluteFilePath(); 
    fputs(filename_fichier_choisi.toLatin1(),fichier); 

    //fichier->write(filename.toLatin1()); 
} 
fclose(fichier); 

我得到的錯誤是「QFileInfo不是的QString的基礎 我可以使用哪些函數來獲取路徑作爲字符串

回答

1

首先,爲什麼?你混合Qt和FILE *,而不是直接方式是使用QFile

您可以執行以下操作來獲取文件路徑:

QString file = QFileInfo(filename).absoluteFilePath(); 

,或者如果你只想要的文件夾:

QString folder = QFileInfo(filename).absolutePath(); 

看來你是C++新手。在您可以調用該類型的函數之前,您首先需要一個特定類型的對象。因此QFileInfo(filename)創建了一個QFileInfo對象,然後.absoluteFilePath()在創建的對象上調用該函數。

+0

好的,謝謝!我更正了我的代碼,因此不使用FILE *,而是使用QFile,但我仍然遇到問題:當我只想要路徑時,文件夾QString仍然包含我的文件的名稱。 –

+0

@AlexandreNader,對不起,我已經更新了答案給你的文件夾。 –

+0

再次感謝您的幫助 –