📄 zipprjfolderdlg.cpp
字号:
// ZipPrjFolderDlg.cpp : implementation file
/*********************************************************************
* Author: orbit
* Date: 2003-7-30
* Contact us: support@winmsg.com
* Web Page: http://www.winmsg.com/cn/orbit.htm (for Chinese version)
* http://www.winmsg.com/orbit.htm (for English version)
**********************************************************************/
#include "stdafx.h"
#include "tabbars.h"
#include "ZipPrjFolderDlg.h"
#include "Common\DirDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CZipPrjFolderDlg dialog
CZipPrjFolderDlg::CZipPrjFolderDlg(CWnd* pParent /*=NULL*/)
: CDialog(CZipPrjFolderDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CZipPrjFolderDlg)
m_nzipSrc = 0;
//}}AFX_DATA_INIT
}
void CZipPrjFolderDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CZipPrjFolderDlg)
DDX_Radio(pDX, IDC_RAD_WORKSPACE, m_nzipSrc);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CZipPrjFolderDlg, CDialog)
//{{AFX_MSG_MAP(CZipPrjFolderDlg)
ON_BN_CLICKED(IDC_BTN_SELECT_SRC, OnBtnSelectSrc)
ON_BN_CLICKED(IDC_RAD_WORKSPACE, OnRadWorkspace)
ON_BN_CLICKED(IDC_RAD_FOLDER, OnRadFolder)
ON_BN_CLICKED(IDC_BTN_OUTFILE, OnBtnOutfile)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CZipPrjFolderDlg message handlers
void CZipPrjFolderDlg::OnBtnSelectSrc()
{
CDirDialog dlg;
CString strTmp;
GetDlgItemText(IDC_EDIT_SRC_PATH,strTmp);
#ifdef _VER_CHINESE
if(dlg.DoBrowse(this,_T("选择文件源目录"),lpszNull,strTmp) == 1)
#else
if(dlg.DoBrowse(this,_T("Select Folder to zip"),lpszNull,strTmp) == 1)
#endif
{
CString strFolder = dlg.m_strPath;
SetDlgItemText(IDC_EDIT_SRC_PATH,strFolder);
UpdateData(TRUE);
if(m_nzipSrc == 1)//zip folder
{
int idx = strFolder.ReverseFind(_T('\\'));
strFolder = strFolder.Mid(idx + 1);
CString strOutPutFile;
GetDlgItemText(IDC_EDIT_ZIPOUTFILE,strOutPutFile);
idx = strOutPutFile.ReverseFind(_T('\\'));
if(idx != -1)
{
strOutPutFile = strOutPutFile.Left(idx + 1);//include last '\'
strOutPutFile += (strFolder + _T(".zip"));
}
else
{
strOutPutFile = strFolder + _T(".zip");
}
SetDlgItemText(IDC_EDIT_ZIPOUTFILE,strOutPutFile);
}
}
}
void CZipPrjFolderDlg::OnRadWorkspace()
{
GetDlgItem(IDC_EDIT_SRC_PATH)->EnableWindow(FALSE);
GetDlgItem(IDC_BTN_SELECT_SRC)->EnableWindow(FALSE);
SetDlgItemText(IDC_EDIT_SRC_PATH,m_strSrcFolder);
int idx = m_strSrcFolder.ReverseFind(_T('\\'));
ASSERT(idx != -1);
CString strDswName = m_strSrcFolder.Mid(idx + 1);
CString strTmp;
GetDlgItemText(IDC_EDIT_ZIPOUTFILE,strTmp);
idx = strTmp.ReverseFind(_T('\\'));
if(idx != -1)
{
strTmp = strTmp.Left(idx + 1);
}
strTmp += (strDswName + _T(".zip"));
SetDlgItemText(IDC_EDIT_ZIPOUTFILE,strTmp);
}
void CZipPrjFolderDlg::OnRadFolder()
{
GetDlgItem(IDC_EDIT_SRC_PATH)->EnableWindow(TRUE);
GetDlgItem(IDC_BTN_SELECT_SRC)->EnableWindow(TRUE);
}
void CZipPrjFolderDlg::OnOK()
{
GetDlgItemText(IDC_EDIT_SRC_PATH,m_strSrcFolder);
GetDlgItemText(IDC_EDIT_FILETYPE,m_strFileType);
GetDlgItemText(IDC_EDIT_ZIPOUTFILE,m_strOutputZipFile);
if(GetFileAttributes(m_strSrcFolder) == 0xffffffff)//not exist
{
CString strTmp;
#ifdef _VER_CHINESE
strTmp.Format(_T("目录 %s \r\n不存在或者没有访问权限!"),m_strSrcFolder);
#else
strTmp.Format(_T("The folder '%s' \r\nis not exist or you have not enough right to access"),m_strSrcFolder);
#endif
AfxMessageBox(strTmp);
return;
}
CDialog::OnOK();
}
void CZipPrjFolderDlg::OnBtnOutfile()
{
TCHAR szOutFile[_MAX_PATH];
GetDlgItemText(IDC_EDIT_ZIPOUTFILE,szOutFile,_MAX_PATH);
CFileDialog dialog(FALSE, "zip", NULL, OFN_EXPLORER | OFN_OVERWRITEPROMPT | OFN_CREATEPROMPT , "Zip Files (*.zip)|*.zip||");
#ifdef _VER_CHINESE
dialog.m_ofn.lpstrTitle = "保存输出的Zip文件";
#else
dialog.m_ofn.lpstrTitle = "Save zip file";
#endif
dialog.m_ofn.lpstrFile = szOutFile;
if(dialog.DoModal() == IDOK)
{
SetDlgItemText(IDC_EDIT_ZIPOUTFILE,dialog.GetPathName());
}
}
BOOL CZipPrjFolderDlg::OnInitDialog()
{
CDialog::OnInitDialog();
if(m_nzipSrc == 0)
{
GetDlgItem(IDC_EDIT_SRC_PATH)->EnableWindow(FALSE);
GetDlgItem(IDC_BTN_SELECT_SRC)->EnableWindow(FALSE);
}
else//spec it not open workspace,so disadle workspace radio
{
GetDlgItem(IDC_RAD_WORKSPACE)->EnableWindow(FALSE);
}
SetDlgItemText(IDC_EDIT_SRC_PATH,m_strSrcFolder);
SetDlgItemText(IDC_EDIT_FILETYPE,m_strFileType);
SetDlgItemText(IDC_EDIT_ZIPOUTFILE,m_strOutputZipFile);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -