将gz文件串流到char数组

时间:2012-12-05 08:45:55

标签: c++ mfc stream gz

语言:使用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总是等于“。”。

提前感谢您的帮助。

0 个答案:

没有答案