⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 projectzipbase.h

📁 壓縮及解壓縮的原始碼(Microsoft visual c++)
💻 H
字号:
// ProjectZipBase.h: interface for the CProjectZipBase class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PROJECTZIPBASE_H__07662E15_E6EC_4401_ADCD_6EC0B286521E__INCLUDED_)
#define AFX_PROJECTZIPBASE_H__07662E15_E6EC_4401_ADCD_6EC0B286521E__INCLUDED_

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

#include "IProjectZip.h"
#include "..\zipunzip\unzipper.h"

class CProjectZipBase : public IProjectZip  
{
public:
	CProjectZipBase(LPCTSTR szProjectFilePath = NULL, HWND hwndParent = NULL);
	virtual ~CProjectZipBase();

public: // required baseclass implementations
	void Zip(CString& sDestPath);
	int Open(LPTSTR szFilePath, LPTSTR szOutputPath = NULL, BOOL bErrorMsgs = TRUE);
	void ShowOptions(HICON hIcon, CString& sDestPath);
	void Release();

	BOOL IsWorkspace(LPCTSTR szFilePath);
	BOOL IsProject(LPCTSTR szFilePath);
	CString FormatOtherProjFileExtString();
	CString FormatProjectFileExtString();
	CString FormatWorkspaceFileExtString();

protected:
	CString m_sProjectPath;
	HWND m_hwndParent;
	CStringArray m_aProjExts, m_aWkspExts;
	CStringArray m_aOtherProjFileExts;
	DWORD m_dwOptions;

protected:
	int Zip(CString sFilePath, CString& sZipPath, CStringArray& aFailures);
	void Zip(CString& sDestPath, DWORD dwFlags);

	int BuildProjectFileList(CString sProjectFile, CStringArray& aFiles, CStringArray& aFailures);
	int BuildWorkspaceFileList(CString sWorkspaceFile, CStringArray& aFiles, CStringArray& aFailures);
	void PrepareFilePaths(CString sProjectFile, CStringArray& aFiles, CStringArray& aFailures);
	CString GetFileRoot(CString sProjectFile, const CStringArray& aFiles);
	int FindProjectFiles(CUnzipper& uzip, LPCTSTR szFolder, CStringArray& aDswFiles, CStringArray& aDspFiles);
	int FindProjectFiles(CUnzipper& uzip, LPCTSTR szFolder, CStringArray& aFiles, LPCTSTR szExt);
	inline CWnd* ParentWnd() { return CWnd::FromHandle(m_hwndParent); }
	inline BOOL HasOption(DWORD dwOption) { return ((m_dwOptions & dwOption) == dwOption); }

	// derived classes must provide implementation
	virtual BOOL GetNextProjectFile(CStdioFile& fileWorkspace, CString& sFilePath) = 0;
	virtual BOOL GetNextFile(CStdioFile& fileProject, CString& sFilePath) = 0;
	
	void AddOtherProjFileExtension(LPCTSTR szExt);
	void AddProjectExtension(LPCTSTR szExt);
	void AddWorkspaceExtension(LPCTSTR szExt);
	CString GetExtension(LPCTSTR szFilePath);
	CString BuildFilterString();

	static void AddFile(LPCTSTR szFilePath, CStringArray& aFiles); // checks for duplicates
	static void AddFiles(const CStringArray& aSrcFiles, CStringArray& aDestFiles); // checks for duplicates
};

#endif // !defined(AFX_PROJECTZIPBASE_H__07662E15_E6EC_4401_ADCD_6EC0B286521E__INCLUDED_)

⌨️ 快捷键说明

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