compressdoc.h

来自「所有压缩格式的压缩解压缩。」· C头文件 代码 · 共 67 行

H
67
字号
// CompressDoc.h: interface for the CCompressDoc class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_COMPRESSDOC_H__F83DDB14_5581_4545_A886_99D1A45D8D12__INCLUDED_)
#define AFX_COMPRESSDOC_H__F83DDB14_5581_4545_A886_99D1A45D8D12__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "../public/codecdll.h"
#include "libmanager.h"
#include "fileindexlist.h"

class CCompressDoc
{
public:
	CCompressDoc(CLibManager *lpLibmgr);
	virtual ~CCompressDoc();

	//libIndex 指定文件的压缩/解压处理库,-1表示自动根据文件扩大展名选定库
	BOOL New(LPCTSTR lpszFileName,int libIndex=-1)
		{return OpenFile(lpszFileName,CDL_FILE_CREATE,libIndex);}
	BOOL Open(LPCTSTR lpszFileName,int libIndex=-1)
		{return OpenFile(lpszFileName,CDL_FILE_OPEN,libIndex);}
	void Close();
	BOOL IsClosed() {return !m_hFile;}

	enum {absolute,relative,nofolder};//绝对路径、相对路径及无路径
	// iLevel 设定压缩方法
	BOOL AddFiles(int mode,const CStringArray &Files,const CString &DestPos,int iLevel);
	BOOL AddFolders(int mode,const CStringArray &Folders,const CString &DestPos,int iLevel);

	BOOL DeleteFiles(CWordArray&);
	BOOL DeleteFolders(CStringArray &Folders);

	BOOL ExtractFiles(CWordArray&,CString &lpszPath);
	BOOL ExtractFolders(CStringArray &Folders,CString &lpszPath);

	FILEINDEXLISTNODE *GetFileListRoot(){return m_FileList.root;}

	CString GetComment(int nIndex);
	void SetComment(int nIndex,LPCTSTR lpszComment);
public:
	//压缩/解压缩处理函数指针
	FUNCTIONINFO m_FnInfo;
	CString m_lpszFileName;
private:
	HCXFILE m_hFile;		//打开的文件

	BOOL OpenFile(LPCTSTR lpszFileName,int mode,int libIndex);
	void ReloadFileList();

	void FindFile(LPCTSTR lpszName,CWordArray&);

	BOOL addFiles(int mode,const CStringArray &Files,const CString &DestPos,int iLevel);
	BOOL addFolders(int mode,const CStringArray &Folders,const CString &DestPos,int iLevel);

protected:
	CLibManager *m_lpLibmgr;
	int m_LibIndex;				//压缩/解压处理库的索引
	FILEINDEXLIST m_FileList;
};

#endif // !defined(AFX_COMPRESSDOC_H__F83DDB14_5581_4545_A886_99D1A45D8D12__INCLUDED_)

⌨️ 快捷键说明

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