首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用QStandardPaths打开文件

无法使用QStandardPaths打开文件
EN

Stack Overflow用户
提问于 2015-07-15 17:19:16
回答 1查看 951关注 0票数 2

我正在尝试创建一个程序,当我按下一个按钮时会打开一个文件。我在头文件中创建了一个QStandardPath。然后我将/myfile.txt追加到它的末尾,并尝试打开它。我刚从Qt开始,想听听一些建议。

对话:

代码语言:javascript
复制
#ifndef DIALOG_H
#define DIALOG_H

#include <QDialog>
#include <QStandardPaths>

namespace Ui {
class Dialog;
}

class Dialog : public QDialog
{
    Q_OBJECT

public:
    QString Location = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();

private slots:
    void on_btn_Read_clicked();

private:
    Ui::Dialog *ui;
};

#endif // DIALOG_H

dialog.cpp

代码语言:javascript
复制
#include "dialog.h"
#include "ui_dialog.h"
#include <QDebug>
#include <QStringList>
#include <QFile>

Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::on_btn_Read_clicked()
{
    QFile myFile(Location.append("/myfile.txt"));

    if(!myFile.exists())
    {
        qDebug() << "File does not exist. attempting to create. . .";
        if (myFile.open(QIODevice::ReadWrite | QIODevice::Text)){
            qDebug() << "created :]";
        }
        else
        {
            qDebug() << "not created :[";
        }
    }
    myFile.close();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-15 17:52:57

您应该检查给定的目录是否存在。如果没有,则需要创建完整的路径,例如:

代码语言:javascript
复制
QDir().mkpath( /**/ );

只有在此之后才能创建文件。

代码语言:javascript
复制
QFile file( filename );
if ( file.opne( /**/ ) )
{
    // ...
}

(但所有这些事情都是在你确定得到许可之后才会发生的。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31436967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档