首页 > 代码库 > 一个清理VS工程的小工具

一个清理VS工程的小工具

VS工程编译完之后会产生大量的临时文件,这个小程序就是清理VS工程残留文件的,能迅速清理VS的工程,如果有子文件夹递归进行清理,程序使用多线程效率很高。

/*
 *	filename:   main.cpp
 *	author:	    lougd
 *	created:    2014-12-26 10:25
 *	version:    1.0.0.1
 *	desc:       clear vs project
 *      version:
 *      history:
*/
#include <Windows.h>
#include <stdio.h>
#include <set>
#include <list>
#include <string>
#include <Shlwapi.h>

#pragma  comment(lib, "shlwapi.lib")
using namespace std;

size_t g_busy_count = 0;
set<string> g_exts;
set<string> g_dirs;
list<string> g_dir_list;
HANDLE g_dir_lock = CreateMutexA(NULL, FALSE, NULL);
HANDLE g_work = CreateEventA(NULL, FALSE, FALSE, NULL);
HANDLE g_exit = CreateEventA(NULL, TRUE, FALSE, NULL);

VOID WINAPI Lock()
{
	WaitForSingleObject(g_dir_lock, INFINITE);
}

VOID WINAPI UnLock()
{
	ReleaseMutex(g_dir_lock);
}

VOID WINAPI DeleteDirWithFile(const char *dir)
{
	list<string> files;
	list<string> dirs;
	WIN32_FIND_DATAA data;
	char tmp[512] = {0x00};
	char path[512] = {0x00};
	int mark = lstrlenA(dir);
	lstrcatA(tmp, dir);
	lstrcatA(path, dir);
	PathAppendA(path, "*");

	HANDLE h = FindFirstFileA(path, &data);
	if (!h || INVALID_HANDLE_VALUE =http://www.mamicode.com/= h)>


一个清理VS工程的小工具