📄 common.cpp
字号:
#include "StdAfx.h"
#include "Common.h"
#include "txttool.h"
#pragma warning( disable : 4996 )
CString CCommon::GetFilePath(LPCTSTR lpszFilePath)
{
TCHAR szDir[_MAX_DIR];
TCHAR szDrive[_MAX_DRIVE];
_tsplitpath(lpszFilePath, szDrive, szDir, NULL, NULL);
return CString(szDrive) + CString(szDir);
}
CString CCommon::GetFileName(LPCTSTR lpszFilePath)
{
TCHAR szExt[_MAX_EXT];
TCHAR szName[_MAX_FNAME];
_tsplitpath(lpszFilePath, NULL, NULL, szName, szExt);
return CString(szName);
}
CString CCommon::GetFileExtName(LPCTSTR lpszFilePath)
{
TCHAR szExt[_MAX_EXT];
TCHAR szName[_MAX_FNAME];
_tsplitpath(lpszFilePath, NULL, NULL, szName, szExt);
return CString(szExt);
}
BOOL CCommon::CreateEmptyFile(LPCTSTR lpszFilePath)
{
return CFile().Open(lpszFilePath, CFile::modeCreate);
}
void CCommon::WinExecAndWait32( LPCTSTR lpszAppPath, LPCTSTR lpParameters, LPCTSTR lpszDirectory )
{
SHELLEXECUTEINFO ShExecInfo = {0};
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
ShExecInfo.hwnd = NULL;
ShExecInfo.lpVerb = NULL;
ShExecInfo.lpFile = lpszAppPath;
ShExecInfo.lpParameters = lpParameters;
ShExecInfo.lpDirectory = lpszDirectory;
ShExecInfo.nShow = SW_HIDE;
ShExecInfo.hInstApp = NULL;
ShellExecuteEx(&ShExecInfo);
WaitForSingleObject(ShExecInfo.hProcess,INFINITE);
}
CString CCommon::GetDirFrontDirPath(const CString &strDirPath)
{
if (strDirPath.GetLength() > 3)
{
return GetFilePath(strDirPath.Left(strDirPath.GetLength()-1)+".exe");
}
return "";
}
BOOL CCommon::DeleteDirectory(const char *DirName)
{
CFileFind tempFind;
char tempFileFind[200];
sprintf(tempFileFind,"%s\\*.*",DirName);
BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind);
while(IsFinded)
{
IsFinded=(BOOL)tempFind.FindNextFile();
if(!tempFind.IsDots())
{
char foundFileName[200];
strcpy(foundFileName,tempFind.GetFileName().GetBuffer(200));
if(tempFind.IsDirectory())
{
char tempDir[200];
sprintf(tempDir,"%s\\%s",DirName,foundFileName);
DeleteDirectory(tempDir);
}
else
{
char tempFileName[200];
sprintf(tempFileName,"%s\\%s",DirName,foundFileName);
::SetFileAttributes(tempFileName, FILE_ATTRIBUTE_ARCHIVE);
DeleteFile(tempFileName);
}
}
}
tempFind.Close();
if(!::RemoveDirectory(DirName))
{
return FALSE;
}
return TRUE;
}
int CCommon::RandNum( const int nLength )
{
srand(time(0));
int nResult = 0;
for(int i = 0; i< nLength; i++)
{
nResult = nResult + rand()*(i+1);
}
return nResult;
}
BOOL CCommon::BuildProjectSuccessed( const CString &strBuildLogFile )
{
CTxtTool txt;
if (txt.Open(strBuildLogFile))
{
return txt.FindIsContainString("0 error(s)");
}
return FALSE;
}
int CCommon::FindFiles(const CString strDir,
CStringArray &arsFiles,
const CString strFileExtName)
{
CFileFind f;
BOOL bFind = f.FindFile(strDir + "\\*." + strFileExtName);
while (bFind)
{
bFind = f.FindNextFile();
if (f.IsDots()) continue;
if (f.IsDirectory()) FindFiles(f.GetFilePath(), arsFiles); //取得所有子目录
else arsFiles.Add(f.GetFilePath());
}
return arsFiles.GetSize();
}
int CCommon::FindStringPos(const CStringArray &Array, const CString& str)
{
int nReturn = -1;
for (int i = 0; i < Array.GetSize(); i++)
{
if ((GetFileName(Array.GetAt(i))+GetFileExtName(Array.GetAt(i))).CompareNoCase(str) == 0)
{
nReturn = i;
break;
}
}
return nReturn;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -