Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Can';t使用QStandardPath打开文件_C++_Qt_File_Io - Fatal编程技术网

C++ Can';t使用QStandardPath打开文件

C++ Can';t使用QStandardPath打开文件,c++,qt,file,io,C++,Qt,File,Io,我试图创建一个程序,当我按下一个按钮时打开一个文件。我在头文件中创建了一个QStandardPath。然后我将/myfile.txt追加到它的末尾,并尝试打开它。我刚开始学习Qt,希望得到一些建议 dialog.h: #ifndef DIALOG_H #define DIALOG_H #include <QDialog> #include <QStandardPaths> namespace Ui { class Dialog; } class Dialog : p

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

dialog.h:

#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
\ifndef对话框
#定义对话框
#包括
#包括
名称空间用户界面{
类对话框;
}
类对话框:公共QDialog
{
Q_对象
公众:
QString Location=QStandardPath::writableLocation(QStandardPath::AppDataLocation);
显式对话框(QWidget*parent=0);
~Dialog();
专用插槽:
单击()时无效;
私人:
Ui::Dialog*Ui;
};
#endif//对话框
dialog.cpp

#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();
}
#包括“dialog.h”
#包括“ui_dialog.h”
#包括
#包括
#包括
Dialog::Dialog(QWidget*父项):
QDialog(父级),
ui(新建ui::对话框)
{
用户界面->设置用户界面(此);
}
对话::~Dialog()
{
删除用户界面;
}
无效对话框::在\u btn\u Read\u clicked()上
{
QFile-myFile(Location.append(“/myFile.txt”);
如果(!myFile.exists())
{

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

QDir().mkpath( /**/ );
你只能在这之后创建一个文件

QFile file( filename );
if ( file.opne( /**/ ) )
{
    // ...
}

(但所有这些都是在你确定你有权限之后才做的。)

qDebug()的结果我不确定我是否理解?你想让我试试吗?我的代码中目前没有。是的,我试图告诉你,请检查调试窗口。在
QFile
实例化后编写。然后检查显示的路径是否确实存在。这是我的调试:“C:/Users/MyName/AppData/Roaming/File\IO\u Practice/myfile.txt”文件不存在。正在尝试创建…未创建:[您有写入权限吗?请尝试在那里创建文件。