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) –