inline int CompressFile(const char * DestName,const char *SrcName)
{
int nRet = -1; FILE * fp_in = NULL;
int len = 0;
char buf[16384] = {0};
if( NULL == (fp_in = fopen(SrcName,"rb")))
{
return nRet;
} /////////////////////////////////////////////
gzFile out = gzopen(DestName,"wb9"); if(out == NULL)
{
return nRet;
}
nRet = 0; for(;;)
{
len = fread(buf,1,sizeof(buf),fp_in); if(ferror(fp_in))
{
nRet = -1; break;
}
if(len == 0) 
{
break;
}
if(gzwrite(out, buf, (unsigned)len) != len)
{
nRet = -1;
}
}
gzclose(out); fclose(fp_in); return nRet;
}inline int UnCompressFile(const char * DestName,const char *SrcName)
{
int nRet = -1; FILE * fp_out = NULL; gzFile in;

int len = 0;

char buf[16384] = {0}; in = gzopen(SrcName,"rb"); if(in == NULL)
{
return nRet;
}
if(NULL == (fp_out = fopen(DestName,"wb")))
{
gzclose(in); return nRet;
}
nRet = 0; for (;;)
{
len = gzread(in,buf,sizeof(buf)); if(len < 0)
{
nRet = -1;
break;
} if(len == 0) break; if(fwrite(buf,1,(unsigned)len,fp_out)!=len)
{
nRet = -1;
break;
}
} fclose(fp_out);
gzclose(in); return nRet;
}
注:将zlib库导进来给分吧