Qt5:下载文件而不保存到硬盘
我正在尝试下载Qt5中的文件,但下载后该文件不得位于硬盘上。 为了澄清,我的应用程序将使用下载的文件更新某些固件,我不希望下载的更新保留在用户的硬盘上,因为它可能被盗 因此,我试图从Qt5:下载文件而不保存到硬盘,qt,casting,qt5,qnetworkaccessmanager,qnetworkreply,Qt,Casting,Qt5,Qnetworkaccessmanager,Qnetworkreply,我正在尝试下载Qt5中的文件,但下载后该文件不得位于硬盘上。 为了澄清,我的应用程序将使用下载的文件更新某些固件,我不希望下载的更新保留在用户的硬盘上,因为它可能被盗 因此,我试图从QNetworkReply*创建QFile,但不将其保存到硬盘上的某个路径 我正在使用QNetworkAccessManager下载一个文件,并将数据存储到QNetworkReply中。我以前总是用QNetworkReply*制作QFile,但现在我做不到了 我找到了QTemporaryFile类,在该类中,文件在使
QNetworkReply*
创建QFile
,但不将其保存到硬盘上的某个路径
我正在使用QNetworkAccessManager
下载一个文件,并将数据存储到QNetworkReply
中。我以前总是用QNetworkReply*
制作QFile
,但现在我做不到了
我找到了QTemporaryFile
类,在该类中,文件在使用后立即被删除,但这仍然让用户有一些以后查找文件的选项
我试着将QNetworkReply*
作为QFile
进行打字,但没有成功地实现,似乎QFile在硬盘上不能没有路径
有人知道怎么做吗?怎么做
谢谢大家。再次不确定您的预期最终用例,但由于您的数据小到可以保存在内存中,因此您可以使用or并从
QNetworkReply
写入QBuffer
为QByteArray
提供了一个QIODevice
接口,因此您可以更轻松地使用它
确保打开QBuffer
进行读/写操作。请参见下面Qt文档中的简单示例:
这将允许您读取数据并根据需要使用,而无需在系统上创建文件。此文件有多大?你打算对它的内容做什么?谢谢,我设法把所有下载的东西都放进缓冲区,然后从中读回来。现在我需要弄清楚如何跨不同的插槽发送缓冲区。。。再次感谢。所以,只需在这里发布解决方案。。。我使用了QBuffer类,制作了一个QBuffer*并通过信号和插槽发送它,一切看起来都正常。所有的功劳都归于@Matthew
QBuffer buffer;
char ch;
buffer.open(QBuffer::ReadWrite);
buffer.write("Qt rocks!");
buffer.seek(0);
buffer.getChar(&ch); // ch == 'Q'
buffer.getChar(&ch); // ch == 't'
buffer.getChar(&ch); // ch == ' '
buffer.getChar(&ch); // ch == 'r'