vmzipper.h

来自「TOOL (Tiny Object Oriented Language) is 」· C头文件 代码 · 共 50 行

H
50
字号
#ifndef VM_ZIPPER_H_INCLUDED
#define VM_ZIPPER_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif

struct VMZipFileInfo// Z_FileInfo
{
	int nFileCount;
	int nFolderCount;
	DWORD dwUncompressedSize;
};

class VMZipper  
{
public:
	VMZipper(LPCTSTR szFilePath = NULL, LPCTSTR szRootFolder = NULL, bool bAppend = FALSE);
	virtual ~VMZipper();

	// simple interface
	static bool ZipFile(LPCTSTR szFilePath); // saves as same name with .zip
	static bool ZipFolder(LPCTSTR szFilePath, bool bIgnoreFilePath); // saves as same name with .zip
	
	// works with prior opened zip
	bool AddFileToZip(LPCTSTR szFilePath, bool bIgnoreFilePath = FALSE);
	bool AddFileToZip(LPCTSTR szFilePath, LPCTSTR szRelFolderPath); // replaces path info from szFilePath with szFolder
	bool AddFolderToZip(LPCTSTR szFolderPath, bool bIgnoreFilePath = FALSE);

	// extended interface
	bool OpenZip(LPCTSTR szFilePath, LPCTSTR szRootFolder = NULL, bool bAppend = FALSE);
	bool CloseZip(); // for multiple reuse
	void GetFileInfo(VMZipFileInfo& info);
	
protected:
	void* m_uzFile;
	char m_szRootFolder[MAX_PATH + 1];
	VMZipFileInfo m_info;

protected:
	void PrepareSourcePath(LPTSTR szPath);
	bool GetLastModified(const char* szPath, SYSTEMTIME& sysTime);

	void UnterminatePath(LPTSTR szPath);
	void PrepareZipPath(LPTSTR szPath);

};

#endif // !defined(AFX_ZIPPER_H__4249275D_B50B_4AAE_8715_B706D1CA0F2F__INCLUDED_)

⌨️ 快捷键说明

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