清理系统盘的垃圾文件,以提高系统整体效率
author : 辟邪马甲
#include <string>
#include <list>
#include <vector>
using namespace std;
static int ix = 0;
public:
WASTECLEAN_NODE node;
int m_nLevel;
WasteCleanList m_WasteList;
CWinThread* m_pThread;
垃圾文件扩展结构:

















typedef list<WASTECLEAN_NODE> WasteCleanList;
void CCleanTestDlg::OnTrack()
{
WasteCleanList list1;
list1.erase( list1.begin(), list1.end() );
list1.clear();
GetWasteList( WASTECLEAN_NODE::LEVEL_MIGHTINESS, list1 );
StartWorker( list1, WASTECLEAN_NODE::LEVEL_MIGHTINESS );
}
void CCleanTestDlg::StartWorker(const WasteCleanList &rList,WASTECLEAN_NODE::enCLEANLEVEL level)
{
StartCleanProc( rList, level );
}
void CCleanTestDlg::GetSysDrive() //系统盘符
{
LPTSTR lpszSystemInfo; // pointer to system information string
DWORD cchBuff = BUFSIZEEX; // size of computer or user name
TCHAR tchBuffer[BUFSIZEEX];
ZeroMemory( tchBuffer,sizeof( tchBuffer ) );
lpszSystemInfo = tchBuffer;
CString strDir = "";
UINT drvType = 0;
if( GetSystemDirectory( lpszSystemInfo, MAX_PATH + 1 ) )
{
strDir.Format( "%s", lpszSystemInfo );
drvType = GetDriveType( strDir.Left( 3 ) );
if ( drvType == DRIVE_FIXED )
{
g_strPath = strDir.Left( 3 );
}
}
}
void CCleanTestDlg::StartCleanProc(const WasteCleanList &rList,
WASTECLEAN_NODE::enCLEANLEVEL level)
{
g_bRuning = TRUE;
g_wList = rList;
GetSysDrive();
ResetEvent( ghThreadExitEvent );
m_pThread = AfxBeginThread( &ThreadsProc,
(LPVOID)NULL, THREAD_PRIORITY_NORMAL );
}
void DealWasteScan( CString strpath )
{
if ( ! g_bRuning )
return;
chdir( strpath );
int iItem = g_wList.size();
WasteCleanList::iterator plist;
for ( plist = g_wList.begin(); plist != g_wList.end(); plist++ )
{
// CString strdd = plist->strFileName.c_str();
DeleteRabbishFile( strpath, plist->strFileName.c_str() );
}
DeleteZeroFile(strpath);
BOOL flag;
CFileFind m_File;
DWORD dwRes;
flag = m_File.FindFile( NULL );
while(flag && g_bRuning)
{
dwRes = WaitForSingleObject(ghThreadExitEvent,0);
if( dwRes == WAIT_OBJECT_0 )
{
g_bRuning = FALSE;
break;
}
flag = m_File.FindNextFile();
if( m_File.IsDirectory() )
{
if( !m_File.IsDots() )
{
strpath = m_File.GetFilePath();
DealWasteScan( strpath );
}
}
}
}
void DeleteRabbishFile( CString strFilePath,CString strFileExt )
{
CFileFind findfile;
CString tFileName;
CString strPath;
//
SetCurrentDirectory( strFilePath ) ;
if(findfile.FindFile( strFileExt ) )
{
while( findfile.FindNextFile() )
{
strPath = findfile.GetFilePath();
tFileName = findfile.GetFileName();
DeleteFile( tFileName );
}
strPath = findfile.GetFilePath();
tFileName = findfile.GetFileName();
DeleteFile( tFileName );
}
}
void DeleteZeroFile(CString path)
{
//chdir(path);
CString Path;
//SetCurrentDirectory(path);
CString ZeroFilename;
CFileFind finder;
BOOL bWorking=finder.FindFile("*.*");
while(bWorking){
bWorking=finder.FindNextFile();
if(!finder.IsDirectory())
{
if(finder.GetLength()==0)
{
Path=finder.GetFilePath();
ZeroFilename=(LPCTSTR)finder.GetFileName();
DeleteFile(ZeroFilename);
}
}
}
}
UINT ThreadsProc(LPVOID pParam)
{
DealWasteScan( g_strPath );
if ( g_bRuning )
{
AfxMessageBox( "处理完毕" );
g_wList.erase( g_wList.begin(), g_wList.end() );
g_wList.clear();
g_bRuning = FALSE;
}
return 0;
}
BOOL CCleanTestDlg::GetWasteList(WASTECLEAN_NODE::enCLEANLEVEL level,
WasteCleanList &rList)
{
//
//
//
m_WasteList.erase( m_WasteList.begin(), m_WasteList.end() );
m_WasteList = rList;
switch( level )
{
case WASTECLEAN_NODE::LEVEL_MIGHTINESS:
{
node.iLevel = 0;
node.strFileName = _T( "*.tmp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
m_nLevel = node.iLevel;
node.iLevel = 0;
node.strFileName = _T( "*.temp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.??$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.?~?" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.___" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.---" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.$$$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.@@@" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.^*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.~*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "~*.*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.syd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.$db" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.db$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "file????._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.ftg" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.fts" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.gid" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "mscreate.dir" );
node.bExt = false;
node.strType = _T( "安装临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "taiwan???.mtx" );
node.bExt = false;
node.strType = _T( "TWAIN临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.chk" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "chklist.*" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.#Res" );
node.bExt = false;
node.strType = _T( "Mac Photoshop转存到PC的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.old" );
node.bExt = false;
node.strType = _T( "旧的备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.wbk" );
node.bExt = false;
node.strType = _T( "Word备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.xlk" );
node.bExt = false;
node.strType = _T( "Excel备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.cdr_" );
node.bExt = false;
node.strType = _T( "Corel DRAW备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "suhdlog.dat" );
node.bExt = false;
node.strType = _T( "Windows诊断文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "scandisk.log" );
node.bExt = false;
node.strType = _T( "扫描磁盘日志文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "file_id.diz" );
node.bExt = false;
node.strType = _T( "软件描述文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "0???????.nch" );
node.bExt = false;
node.strType = _T( "新闻组缓存文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.err" );
node.bExt = false;
node.strType = _T( "错误文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "Thumbs.db" );
node.bExt = false;
node.strType = _T( "预览图片缓存文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.bak" );
node.bExt = false;
node.strType = _T( "临时备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.dmp" );
node.bExt = false;
node.strType = _T( "内存垃圾文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "system.1st" );
node.bExt = false;
node.strType = _T( "Windows组车表诊断文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
rList = m_WasteList;
}
return true;
case WASTECLEAN_NODE::LEVEL_COMMEND:
{
node.iLevel = 1;
node.strFileName = _T( "*.tmp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
m_nLevel = node.iLevel;
node.iLevel = 1;
node.strFileName = _T( "*.temp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.??$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.?~?" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.___" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.---" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.$$$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.@@@" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.^*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.~*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "~*.*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.syd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.$db" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.db$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "file????._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.ftg" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.fts" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.gid" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "mscreate.dir" );
node.bExt = false;
node.strType = _T( "安装临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "taiwan???.mtx" );
node.bExt = false;
node.strType = _T( "TWAIN临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.chk" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "chklist.*" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.#Res" );
node.bExt = false;
node.strType = _T( "Mac Photoshop转存到PC的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.old" );
node.bExt = false;
node.strType = _T( "旧的备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.wbk" );
node.bExt = false;
node.strType = _T( "Word备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
rList = m_WasteList;
}
return true;
case WASTECLEAN_NODE::LEVEL_SIMPLE:
{
node.iLevel = 2;
node.strFileName = _T( "*.tmp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
m_nLevel = node.iLevel;
node.iLevel = 2;
node.strFileName = _T( "*.temp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.??$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.?~?" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.___" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.---" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.$$$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.@@@" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.^*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.~*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "~*.*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.syd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.$db" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.db$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "file????._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
rList = m_WasteList;
}
return true;
}
return false;
}
//end
void CCleanTestDlg::OnTrack()
{
WasteCleanList list1;
list1.erase( list1.begin(), list1.end() );
list1.clear();
GetWasteList( WASTECLEAN_NODE::LEVEL_MIGHTINESS, list1 );
StartWorker( list1, WASTECLEAN_NODE::LEVEL_MIGHTINESS );
}
void CCleanTestDlg::StartWorker(const WasteCleanList &rList,WASTECLEAN_NODE::enCLEANLEVEL level)
{
StartCleanProc( rList, level );
}
void CCleanTestDlg::GetSysDrive() //系统盘符
{
LPTSTR lpszSystemInfo; // pointer to system information string
DWORD cchBuff = BUFSIZEEX; // size of computer or user name
TCHAR tchBuffer[BUFSIZEEX];
ZeroMemory( tchBuffer,sizeof( tchBuffer ) );
lpszSystemInfo = tchBuffer;
CString strDir = "";
UINT drvType = 0;
if( GetSystemDirectory( lpszSystemInfo, MAX_PATH + 1 ) )
{
strDir.Format( "%s", lpszSystemInfo );
drvType = GetDriveType( strDir.Left( 3 ) );
if ( drvType == DRIVE_FIXED )
{
g_strPath = strDir.Left( 3 );
}
}
}
void CCleanTestDlg::StartCleanProc(const WasteCleanList &rList,
WASTECLEAN_NODE::enCLEANLEVEL level)
{
g_bRuning = TRUE;
g_wList = rList;
GetSysDrive();
ResetEvent( ghThreadExitEvent );
m_pThread = AfxBeginThread( &ThreadsProc,
(LPVOID)NULL, THREAD_PRIORITY_NORMAL );
}
void DealWasteScan( CString strpath )
{
if ( ! g_bRuning )
return;
chdir( strpath );
int iItem = g_wList.size();
WasteCleanList::iterator plist;
for ( plist = g_wList.begin(); plist != g_wList.end(); plist++ )
{
// CString strdd = plist->strFileName.c_str();
DeleteRabbishFile( strpath, plist->strFileName.c_str() );
}
DeleteZeroFile(strpath);
BOOL flag;
CFileFind m_File;
DWORD dwRes;
flag = m_File.FindFile( NULL );
while(flag && g_bRuning)
{
dwRes = WaitForSingleObject(ghThreadExitEvent,0);
if( dwRes == WAIT_OBJECT_0 )
{
g_bRuning = FALSE;
break;
}
flag = m_File.FindNextFile();
if( m_File.IsDirectory() )
{
if( !m_File.IsDots() )
{
strpath = m_File.GetFilePath();
DealWasteScan( strpath );
}
}
}
}
void DeleteRabbishFile( CString strFilePath,CString strFileExt )
{
CFileFind findfile;
CString tFileName;
CString strPath;
//
SetCurrentDirectory( strFilePath ) ;
if(findfile.FindFile( strFileExt ) )
{
while( findfile.FindNextFile() )
{
strPath = findfile.GetFilePath();
tFileName = findfile.GetFileName();
DeleteFile( tFileName );
}
strPath = findfile.GetFilePath();
tFileName = findfile.GetFileName();
DeleteFile( tFileName );
}
}
void DeleteZeroFile(CString path)
{
//chdir(path);
CString Path;
//SetCurrentDirectory(path);
CString ZeroFilename;
CFileFind finder;
BOOL bWorking=finder.FindFile("*.*");
while(bWorking){
bWorking=finder.FindNextFile();
if(!finder.IsDirectory())
{
if(finder.GetLength()==0)
{
Path=finder.GetFilePath();
ZeroFilename=(LPCTSTR)finder.GetFileName();
DeleteFile(ZeroFilename);
}
}
}
}
UINT ThreadsProc(LPVOID pParam)
{
DealWasteScan( g_strPath );
if ( g_bRuning )
{
AfxMessageBox( "处理完毕" );
g_wList.erase( g_wList.begin(), g_wList.end() );
g_wList.clear();
g_bRuning = FALSE;
}
return 0;
}
BOOL CCleanTestDlg::GetWasteList(WASTECLEAN_NODE::enCLEANLEVEL level,
WasteCleanList &rList)
{
//
//
//
m_WasteList.erase( m_WasteList.begin(), m_WasteList.end() );
m_WasteList = rList;
switch( level )
{
case WASTECLEAN_NODE::LEVEL_MIGHTINESS:
{
node.iLevel = 0;
node.strFileName = _T( "*.tmp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
m_nLevel = node.iLevel;
node.iLevel = 0;
node.strFileName = _T( "*.temp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.??$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.?~?" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.___" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.---" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.$$$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.@@@" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.^*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.~*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "~*.*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.syd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.$db" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.db$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "file????._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.ftg" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.fts" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.gid" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "mscreate.dir" );
node.bExt = false;
node.strType = _T( "安装临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "taiwan???.mtx" );
node.bExt = false;
node.strType = _T( "TWAIN临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.chk" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "chklist.*" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.#Res" );
node.bExt = false;
node.strType = _T( "Mac Photoshop转存到PC的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.old" );
node.bExt = false;
node.strType = _T( "旧的备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.wbk" );
node.bExt = false;
node.strType = _T( "Word备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.xlk" );
node.bExt = false;
node.strType = _T( "Excel备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.cdr_" );
node.bExt = false;
node.strType = _T( "Corel DRAW备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "suhdlog.dat" );
node.bExt = false;
node.strType = _T( "Windows诊断文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "scandisk.log" );
node.bExt = false;
node.strType = _T( "扫描磁盘日志文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "file_id.diz" );
node.bExt = false;
node.strType = _T( "软件描述文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "0???????.nch" );
node.bExt = false;
node.strType = _T( "新闻组缓存文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.err" );
node.bExt = false;
node.strType = _T( "错误文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "Thumbs.db" );
node.bExt = false;
node.strType = _T( "预览图片缓存文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.bak" );
node.bExt = false;
node.strType = _T( "临时备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "*.dmp" );
node.bExt = false;
node.strType = _T( "内存垃圾文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 0;
node.strFileName = _T( "system.1st" );
node.bExt = false;
node.strType = _T( "Windows组车表诊断文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
rList = m_WasteList;
}
return true;
case WASTECLEAN_NODE::LEVEL_COMMEND:
{
node.iLevel = 1;
node.strFileName = _T( "*.tmp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
m_nLevel = node.iLevel;
node.iLevel = 1;
node.strFileName = _T( "*.temp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.??$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.?~?" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.___" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.---" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.$$$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.@@@" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.^*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.~*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "~*.*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.syd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.$db" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.db$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "file????._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.ftg" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.fts" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.gid" );
node.bExt = false;
node.strType = _T( "帮助的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "mscreate.dir" );
node.bExt = false;
node.strType = _T( "安装临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "taiwan???.mtx" );
node.bExt = false;
node.strType = _T( "TWAIN临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.chk" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "chklist.*" );
node.bExt = false;
node.strType = _T( "丢失簇的恢复文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.#Res" );
node.bExt = false;
node.strType = _T( "Mac Photoshop转存到PC的临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.old" );
node.bExt = false;
node.strType = _T( "旧的备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 1;
node.strFileName = _T( "*.wbk" );
node.bExt = false;
node.strType = _T( "Word备份文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
rList = m_WasteList;
}
return true;
case WASTECLEAN_NODE::LEVEL_SIMPLE:
{
node.iLevel = 2;
node.strFileName = _T( "*.tmp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
m_nLevel = node.iLevel;
node.iLevel = 2;
node.strFileName = _T( "*.temp" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.??$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.?~?" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.___" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.---" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.$$$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.@@@" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.^*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.~*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "~*.*" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.syd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.$db" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "*.db$" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
node.iLevel = 2;
node.strFileName = _T( "file????._dd" );
node.bExt = false;
node.strType = _T( "临时文件" );
node.bSelect = true;
m_WasteList.insert( m_WasteList.end(), node );
rList = m_WasteList;
}
return true;
}
return false;
}
//end