【问题标题】:Store file path into a QString [Qt]将文件路径存储到 QString [Qt]
【发布时间】:2016-03-07 15:28:22
【问题描述】:

我想通过对话框文件打开一个文件,然后将文件路径存储到一个文本文件中。 问题是当我使用 absoluteFilePath() 函数时出现错误。这是我的代码:

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 的基础。 我可以使用哪个函数将路径作为字符串获取?

【问题讨论】:

    标签: qt path filenames


    【解决方案1】:

    首先,你为什么混合使用 Qt 和 FILE* 而不是直接使用 QFile?

    您可以通过以下方式获取文件路径:

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

    或者如果你只想要文件夹:

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

    看来您是 C++ 新手。在调用该类型的函数之前,您首先需要一个特定类型的对象。因此QFileInfo(filename) 创建了一个QFileInfo 对象,然后.absoluteFilePath() 调用创建的对象上的函数。

    【讨论】:

    • 好的,谢谢!我更正了我的代码,因此不使用 FILE* 但 QFile 并且我仍然遇到问题:当我只想要路径时,文件夹 QString 仍然包含我的文件的名称。
    • @AlexandreNader,对不起,我已经更新了答案给你的文件夹。
    • 再次感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多