windows垃圾清理源代码 C/C++

这是一个使用C/C++编写的Windows系统垃圾清理程序,包括清理预读取文件、临时文件、日志文件、索引文件、文件碎片、过期文件和备份文件的功能。程序能够遍历指定目录及其子目录,删除特定后缀的文件,并提供系统信息、磁盘空间统计等。通过输入选择,用户可以执行不同的清理任务,如查看系统信息、统计文件、清理QQ相关文件以及清理痕迹。
摘要由CSDN通过智能技术生成
//cleanDos2011.5.31.3.cpp
//win32控制台程序,界面做不出来
//没有严格测试过      

#include <windows.h>
#include <stdio.h>
#include <string.h>


DWORD Total = 0;		 //文件和目录数量
DWORD dwFile = 0;		 //文件数量
DWORD dwFolder = 0;		 //所文件夹数量
DWORD dwDeleteFile = 0;  //删除文件数量
   


//公共
VOID  TimeDifference(SYSTEMTIME StOld, SYSTEMTIME StNow);//时差
VOID  Show(VOID);
DWORD FindDirFile(LPSTR szPath);				   //遍历文件和目录
DWORD DeleteFileSuffix(LPSTR szPath, LPSTR Suffix);//删除特定后缀文件		//这有时删的干净,有时删不干净,本来是想删文件夹的,
DWORD DeleteDirFile(LPSTR szPath);				   //删除文件夹里的文件		//后面发现RemoveDirectory()只能删空文件夹,导致路径错误,就不要了.
VOID  Clear0(DWORD *Total, DWORD *dwFile, DWORD *dwFolder, DWORD *dwDeleteFile);
VOID  OS_Version(CHAR *szVersionInfo);

//1
VOID GetSystemDir(VOID); //获取系统位置
VOID SystemInfo(VOID);   //获取系统信息
VOID GetTime(VOID);		 //获取时间
VOID SpaceSize(CHAR  *RootPathName);
VOID PrintSpaceSize();
VOID AllSystemInfo(VOID);

//2
VOID DeleteRubbish(VOID);	 //删除垃圾文件


//3
VOID QQClean(VOID);//Win7 / XP
//VOID GetUserNameDocuments(LPSTR c);//获取用户名

//4
VOID StatisticsFile(VOID);//统计
VOID Conversion(CHAR* c); //格式转化

//5清理痕迹
VOID DeleteTrace(VOID);

VOID Show(VOID)
{
	printf("\n1: 系统信息\t");
	printf("2:垃圾清理\t");
	printf("3: QQ还原\t\n");
	printf("4: 统计文件\t");
	printf("5: 清理痕迹\t");
	printf("其他: 退出\n\n");
}


VOID GetSystemDir()
{	
	CHAR UserName[MAX_PATH];
	DWORD dw = MAX_PATH;

	GetUserName(UserName, &dw);
	printf("用户名: %s\n", UserName);

	CHAR SystemDir[MAX_PATH];
	CHAR WindowDir[MAX_PATH];

	GetSystemDirectory(SystemDir, MAX_PATH);
	GetWindowsDirectory(WindowDir, MAX_PATH);

	printf("系统目录:%s\nWindows目录:%s", SystemDir, WindowDir);

}


VOID SystemInfo()
{
	SYSTEM_INFO SysInfo;
	GetSystemInfo(&SysInfo);

	printf("\n内存分页大小: 0x%.8X", SysInfo.dwPageSize);
	printf("\n可用内存起始: 0x%.8x", SysInfo.lpMinimumApplicationAddress);
	printf("\n可用内存结束: 0x%.8x", SysInfo.lpMaximumApplicationAddress);
	printf("\nCPU个数: %d", SysInfo.dwNumberOfProcessors);

	printf("\nCPU类型: ");
	switch (SysInfo.dwProcessorType)
	{
	case PROCESSOR_INTEL_386:
		printf("386\n");
		break;
	case PROCESSOR_INTEL_486:
		printf("486\n");
		break;
	case PROCESSOR_INTEL_PENTIUM:
		printf("pentium, Cpu Model 0x%.2X, Stepping 0x%.2X\n",(BYTE)(SysInfo.wProcessorRevision>>8), (BYTE)SysInfo.wProcessorRevision);
		break;	
	case PROCESSOR_INTEL_IA64:
		printf("IA64\n");
		break;
	case PROCESSOR_AMD_X8664:
		printf("AMD x86 64\n");
		break;
	}

	printf("处理器架构: ");
	switch (SysInfo.wProcessorArchitecture)
	{
	case PROCESSOR_ARCHITECTURE_INTEL:
		printf("intel");
		printf(" CPU vendor is %d\n",SysInfo.wProcessorLevel);
		break;
	case PROCESSOR_ARCHITECTURE_IA64:
		printf("64 bits intel\n");
		break;
	case PROCESSOR_ARCHITECTURE_AMD64:
		printf("64 bits AMD\n");
		break;
	case PROCESSOR_ARCHITECTURE_UNKNOWN:
		printf("UNKNOWN\n");
		break;
	}

}


VOID GetTime()
{
	SYSTEMTIME st;
	// 获取时间
	GetLocalTime( &st );
	printf("日期:  %d-%d-%d\n", st.wYear, st.wMonth, st.wDay);
	printf("时间:  %d:%d:%d\n", st.wHour, st.wMinute, st.wSecond);
	printf("已开机: %d分钟", GetTickCount()/1000/60);
	
}


VOID OS_Version(CHAR *szVersionInfo)
{
	OSVERSIONINFO OS;

	// 设置参数大小,调用并判断是否成功
	OS.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
	if(!GetVersionEx(&OS))
	{
		printf("error %d\n",GetLastError());
		return;
	}
	switch(OS.dwMajorVersion)
	{
	case 5:
			switch(OS.dwMinorVersion)
			{
			case 0:
				lstrcat(szVersionInfo,"2000");
				break;
			case 1:
				lstrcat(szVersionInfo,"XP");
				break;
			case 2:
				lstrcat(szVersionInfo,"Server 2003");
				break;
			}
		break;

	case 6:
			switch(OS.dwMinorVersion)
			{
			case 0:
				lstrcat(szVersionInfo,"Vista");
				break;
			case 1:
				lstrcat(szVersionInfo,"7");
				break;
			}
		break;
	}
}


VOID SpaceSize(CHAR  *RootPathName)
{
	
    DWORD SectorsPerCluster;
    DWORD BytesPerSector;
    DWORD NumberOfFreeClusters;
    DWORD TotalNumberOfClusters;	


	GetDiskFreeSpace(
		RootPathName,			
		&SectorsPerCluster,
		&BytesPerSector,
		&NumberOfFreeClusters,
		&TotalNumberOfClusters	
		);
//	printf("%d, %d, %d\n",  NumberOfFreeC
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值