语言:C++ (MFC) 与 VS2010
我正在尝试流式传输 .gz 文件,以便可以将其转换为数组。然后我会将这个数组发送到服务器。我想要整个 .gz 文件,而不仅仅是内容,因为服务器需要一个 .gz 文件。
关于我如何解决这个问题的任何建议?我试过 fopen(),但它不起作用。
这是我的其他尝试:
// common variables
ifstream fGZStream;
char * strData;
1)使用ifstream:
fGZStream.open(gz_filename, ifstream::binary);
strData = new char[nFileSize]; //assume nFileSize if already ok
fGZStream.read(strData, nFileSize);
fGZStream.close();
2) 使用 CFile:
CFile fGZFile;
file.Open(gz_filename, CFile::modeRead);
strData = new char[nFileSize]; //assume nFileSize if already ok
file.Read(strData, nFileSize);
file.Close();
3) 使用 fstream 和 filebuf:
filebuf* fGZBuffer;
fGZStream.open(gz_filename, ifstream::binary);
strData = new char[nFileSize]; //assume nFileSize if already ok
fGZBuffer->sgetn(strData, nFileSize);
fGZStream.close();
在所有这些尝试中,strData 总是最终等于“.”。
预先感谢您的帮助。