语言:使用VS2010的C ++(MFC)
我正在尝试流式传输.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总是等于“。”。
提前感谢您的帮助。