2016-03-07 92 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

再次感谢您的帮助 –