1
是的,这是我的一次。我有下面的代码:QFile在程序退出时保存文件,根本不会保存〜500MB文件
void MainWindow::on_startButton_clicked()
{
QNetworkAccessManager *nam = new QNetworkAccessManager(this);
QNetworkReply *re = nam->get(QNetworkRequest(QUrl("http://somesite/ai/iai.jpg")));
QEventLoop loop;
QObject::connect(reply, SIGNAL(readyRead()), &loop, SLOT(quit()));
loop.exec();
ui->dbgOut->insertHtml("<font color='green'>OK</font><br>");
ui->dbgOut->insertHtml("##################################");
//save
QFile file("C:\\a.bin");
file.open(QIODevice::WriteOnly);
file.write(re->readAll());
file.close();
}
我有两个问题:
当我点击链接它下载文件,但不会写他们的硬盘。我可以等5,10分钟,什么也不是。此时,整个文件存储在程序存储器中。如果我关闭了我的程序,它们将保存在磁盘上。
根本没有保存大文件(〜500MB)。当我关闭程序时,它立即崩溃。
如何编辑它,以便我的程序能够“实时”保存下载的文件?
1)你应该连接到结束(),而不是readyRead()。对于内存优化,您可以通过chunk读取块,但使用链接readyRead。 2)请出示坠机的追踪。 – lpapp
[用Qt下载文件?](http://stackoverflow.com/questions/13747548/downloading-a-file-with-qt) –