compressztool.cpp

来自「一个解压程序,只要设定了解压路径和解压文件的种类,就可以随意解压」· C++ 代码 · 共 47 行

CPP
47
字号

#include "stdafx.h"
#include "CompressZTool.h"
#include "complib.h"

bool CCompressZTool::Check(  const char* fname, unsigned long fsize )
{
	const unsigned char* hdr = CTool::common_buf;
	unsigned long siz = (fsize>XACR_BUFSIZE ? XACR_BUFSIZE : fsize);
//--------------------------------------------------------------------//

	return ( siz>2 && hdr[0]==0x1f && hdr[1]==0x9d ); 
}

bool CCompressZTool::Extract( const char* fname,const char* ddir )
{
	unsigned char* buf = CTool::common_buf;
//--------------------------------------------------------------------//

	ZFILE* fp=Z_open( fname,"rb" );
	if( fp==NULL )return false;

	char outname[256];
	char tmpname[256];//by uema2.
	kiutil::getOriginalName( outname,fname,
		0==strcmp(kiutil::pathExt(fname),"Z") ? NULL : "uncompress" );

	sprintf(tmpname, "%s\\%s", ueutil::GetExtractPath(), outname); // by uema2.
	strcpy(outname, tmpname);

	FILE* fwp=fopen(outname,"wb");
	if( fwp!=NULL )
	{
		size_t s;
		while( s=Z_read(buf,XACR_BUFSIZE,fp) )
		{
			if( s==-1 )
				break;
			fwrite( buf,1,s,fwp );
		}
		fclose(fwp);
	}
	Z_close( fp );
	return true;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?