📄 tartool.h
字号:
#ifndef AFX_TARTOOL_H__5015A722_3A09_11D4_8D96_9C430C9F5A32__INCLUDED_
#define AFX_TARTOOL_H__5015A722_3A09_11D4_8D96_9C430C9F5A32__INCLUDED_
#include "Tool.h"
#include "zlib/zlib.h"
#include "libbzip2/bzlib.h"
#include "complib.h"
// TAR+BZIP2 偲偐 TAR+GZIP 偲偐 TAR+COMPRESS 偲偐 堦妵僒億乕僩
class CTarTool : public CTool
{
public:
CTarTool() : CTool( "Tar 揥奐" ){fp=NULL;}
CTarTool(const char* r) : CTool(r) {}
bool IsType( const char* ext )
// {return 0==stricmp(ext,"tar");}
{return 0==strcmp(ext,"tar");} //by uema2.
bool Check( const char* fname, unsigned long fsize );
bool Extract( const char* fname, const char* ddir );
protected:
virtual bool TarOpen(const char* fname);
virtual size_t TarRead(void* red,size_t size);
virtual void TarClose();
private:
void SkipBlock(int num);
FILE* fp;
};
class CTbzTool : public CTarTool
{
//
// using
//
// libbzip2 1.0.1
// http://sources.redhat.com/bzip2/
// Copyright (C) 1996-2000 Julian R Seward. All rights reserved.
//
// see "libbzip2/LICENSE"
//
public:
CTbzTool() : CTarTool("Tar+Bzip2 揥奐") {bfp=NULL;};
bool IsType( const char* ext )
// {return 0==stricmp(ext,"bz2") || 0==stricmp(ext,"tbz");}
{return 0==strcmp(ext,"bz2") || 0==strcmp(ext,"tbz");} //by uema2.
protected:
bool TarOpen(const char* fname);
size_t TarRead(void* red,size_t size);
void TarClose();
private:
BZFILE* bfp;
};
class CTgzTool : public CTarTool
{
//
// using
//
// zlib 1.1.3
// http://www.info-zip.org/pub/infozip/zlib/
// Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler
//
// see "zlib/zlib.h"
//
public:
CTgzTool() : CTarTool("Tar+Gzip 揥奐") {gfp=NULL;};
bool IsType( const char* ext )
// {return 0==stricmp(ext,"gz") || 0==stricmp(ext,"tgz");}
{return 0==strcmp(ext,"gz") || 0==strcmp(ext,"tgz");} // by uema2.
protected:
bool TarOpen(const char* fname);
size_t TarRead(void* red,size_t size);
void TarClose();
private:
gzFile gfp;
};
class CTaZTool : public CTarTool
{
// see complib.h
public:
CTaZTool() : CTarTool("Tar+Compress 揥奐") {zfp=NULL;};
bool IsType( const char* ext )
{return 0==strcmp(ext,"Z") || 0==strcmp(ext,"taZ");}
protected:
bool TarOpen(const char* fname);
size_t TarRead(void* red,size_t size);
void TarClose();
private:
ZFILE* zfp;
};
class CTazTool : public CTarTool
{
// see complib.h
public:
CTazTool() : CTarTool("Tar+Pack 揥奐") {pfp=NULL;};
bool IsType( const char* ext )
{return 0==strcmp(ext,"z") || 0==strcmp(ext,"taz");}
protected:
bool TarOpen(const char* fname);
size_t TarRead(void* red,size_t size);
void TarClose();
private:
PFILE* pfp;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -