0
我发现这个代码片断下载文件下载二进制文件:如何使用wxWidgets
wxURL url(wxT("http://www.example.com/file.txt"));
if(url.GetError()==wxURL_NOERR)
{
wxString htmldata;
wxInputStream *in = url.GetInputStream();
if(in && in->IsOk())
{
wxStringOutputStream html_stream(&htmldata);
in->Read(html_stream);
wxLogMessage(htmldata);
}
delete in;
}
但fistly它只是记录文件的内容,并只对文本文件。但是我需要下载* .exe文件以后再执行它。所以我需要修改这些代码来处理二进制数据,并将这些数据保存到磁盘上。这里使用了太多的Streams来理解这里发生的事情。请帮忙。
您是否尝试使用[wxFileOutputStream](http://docs.wxwidgets.org/trunk/classwx_file_output_stream.html)而不是字符串输出? – Bastien
是的,文件被下载,但不可执行win32应用 – Neka
通过网络读取文件是相同的,不管它是什么类型的文件,数据就是数据。最大的区别在于你如何处理接收方的数据,例如你不能使用例如'wxStringOutputStream'或将数据记录为文本,除非数据实际上*为*文本。我对WX网络类没有任何了解,但是如果您在线查找手册页,我相信您可以找到一个处理任意数据的流类,那么这只是将它写入磁盘而不是记录数据,这里的重要部分是以二进制模式打开文件。 –