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

📄 ~packmanage.~cpp

📁 得到本周内的电视节目预告! f
💻 ~CPP
字号:
// PackManage.cpp: implementation of the CPackManage class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "PackManage.h"
#include "shared/FileMisc.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

#define TEMP_RES_FOLDER		"ResTemp"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CPackManage::CPackManage()
{
	m_strResTempFolder = "";
	m_bExtracted = FALSE;
	GetExeFolder();
}

CPackManage::~CPackManage()
{
//	CloseResourcePack();
}

BOOL CPackManage::LoadResourcePack(CString strFilePath)
{
	ASSERT(!strFilePath.IsEmpty());
	m_strPackFilePath = strFilePath;
	m_bExtracted = FALSE;

	if (!m_unzip.OpenZip(m_strPackFilePath))
		return FALSE;
	
	m_strResTempFolder = m_strFolder; //+ "\\" + TEMP_RES_FOLDER;
//	CloseResourcePack();	
	if (!IsFileExisted(m_strResTempFolder))
	{
		if (!CreateFolder(m_strResTempFolder))
			return FALSE;
	}
	
	if (!m_unzip.SetOutputFolder(m_strResTempFolder))
		return FALSE;

	return TRUE;
}

void CPackManage::CloseResourcePack()
{
	m_unzip.CloseZip();
	if (m_strResTempFolder != "")
	{
		DeleteFolderContents(m_strResTempFolder, TRUE, "*.*");
		RemoveFolder(m_strResTempFolder);
	}
}

BOOL CPackManage::ExtractPack()
{
	if (m_unzip.Unzip())
	{
		m_bExtracted = TRUE;
		return TRUE;
	}
	return FALSE;
}

CString CPackManage::GetFilePathFromPack(CString strFileName)
{
	CString  strPath = m_strResTempFolder + "\\" + strFileName;;
	if (m_bExtracted)
	{
		if (IsFileExisted(strPath))
		{
			return strPath;
		}
		else
		{
			return "";
		}
	}
	else
	{
		CString strFind;
		if (m_unzip.GotoFile(strFileName))
		{
			if (m_unzip.UnzipFile())
			{
				return strPath;
			}
		}
	}

	return "";
}

void CPackManage::GetExeFolder()
{
	char buf[255];
	GetModuleFileName(NULL, buf, 255);
	CString strTemp = buf;
	int nTemp = 1;
	while (strTemp.Mid(strTemp.GetLength() - nTemp, 1) != _T("\\"))
	{
		nTemp++;
	}
	strTemp = strTemp.Left(strTemp.GetLength() - nTemp);
	m_strFolder = strTemp;
}

⌨️ 快捷键说明

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