Q文件。设备未打开

QFile. Device not open

我对 QFile 有疑问。

QFile file1("file1.dat");
QFile file2("file2.dat");

if(file2.exists())
{

}

if(!file1.open(QIODevice::ReadOnly))
{
    qDebug() << "Ошибка открытия для чтения";
}

if(!file2.open(QIODevice::WriteOnly))
{
    qDebug() << "Ошибка открытия для записи";
}

QByteArray block = file1.readAll();
file2.write(block);
file1.close();
file2.close();

错误:

QIODevice::read (QFile, "file1.dat"): device not open

尝试以读写模式打开file1.dat:

if(!file1.open(QIODevice::ReadWrite))
{
    qDebug() << "Ошибка открытия";
}

因为如果只是为了阅读而打开,不存在则无法创建,或者先手动创建。

如果该文件未打开,则说明您没有执行任何操作,因此只是为了确保首先检查两个文件是否已打开:

if(file1.isOpen() && file2.isOpen()){
    QByteArray block = file1.readAll();
    file2.write(block);
    file1.close();
    file2.close();
}