如何对程序执行动作放缓慢!
我有这样一个统计文件个数的程序,不过执行的时候占用的资源太厉害,而且无法再另一文档中如金山毒霸一样一个一个文件显示,请快帮忙,小弟快疯了!
void CCrcDlg::OnCrc()
{
// TODO: Add your control notification handler code here
char szDrivers[128];
char* pDrive;
if(!GetLogicalDriveStrings(sizeof(szDrivers),szDrivers))
{
MessageBox("error");
return;
}
pDrive=szDrivers;
pFrame = new CMainFrame; //pFrame为一定一的现实一个一个文件的文档
pFrame->Create(NULL, "Hi",WS_OVERLAPPEDWINDOW¦WS_VISIBLE,
CFrameWnd::rectDefault,NULL,NULL,0, NULL );
//while(*pDrive)
{
//pDrive+=strlen(pDrive)+1;
m_combox.AddString(pDrive);
if(FindSubDir(pDrive)){
}
}
UpdateData(false);
}
BOOL CCrcDlg::FindSubDir( LPCTSTR strPath)//找寻子目录,采用递归调用
{
//
// Are there subDirs ?
//
CFileFind find;
CString strTemp = strPath;
BOOL bFind;
if ( strTemp[strTemp.GetLength()-1] == '\\' )
strTemp += "*.*";
else
strTemp += "\\*.*";
bFind = find.FindFile( strTemp );
// bFind=find.FindNextFile();
while ( bFind )
{
bFind = find.FindNextFile();
if ( !find.IsDirectory()&& !find.IsHidden() ){//是文件?
m_count++;
m_filename=find.GetFileName();
m_path=find.GetFilePath();
pFrame->m_path=m_path;
pFrame->MyDraw();//进行文件显示
}
if ( find.IsDirectory() && !find.IsDots() )//是目录,递归调用
{
m_directory++;
FindSubDir(find.GetFilePath());
}
}
return TRUE;
}
希望大家多多捧场!