1

语言: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 总是最终等于“.”。

预先感谢您的帮助。

4

0 回答 0