首页 > 代码库 > CodeFolderClear 自动清理代码文件夹下无用文件的小程序及源码
CodeFolderClear 自动清理代码文件夹下无用文件的小程序及源码
最近常要用U盘拷贝代码,发现编译器生成的各种中间文件占用了大量的空间,手工删除起来费时费力,所以就萌生了写一个小工具搞定这一切都念头。
说干就干,晚上熬夜搞定!
小工具程序及源码工程的下载链接: 点击下载
用简单的方式进行处理,递归删除。下面统计量下要删除的文件:
工程目录下: 工程目录的判断依据: 有工程文件 *.vcxproj
*.sdf
*.suo
*.user
生成目录(Debug/Release等)下的文件:
*.obj
*.cache
*.exp
*.ilk
*.lastbuildstate
*.map
*.pch
*.tlog
*.idb
*.embed.manifest.res
*_manifest.rc
BuildLog.htm
下面的这些文件只有是在生成目录下的时候才能删除,其它目录下的时候不能删除.
*.log
*.pdb
*.dll
*.ocx
*.lib
*.exe
下面是代码,就一个文件:
#pragma once #include <Windows.h> #include <tchar.h> #include <iostream> using namespace std; // 可以直接删除的文件. const wchar_t* DirectDeleteFileExt[] = { L".sdf", L".suo", L".user", L".obj", L".cache", L".exp", L".ilk", L".lastbuildstate", L".map", L".pch", L".ipch", L".tlog", L".idb", L".embed.manifest.res", L".embed.manifest", L".intermediate.manifest", L"_manifest.rc", L"BuildLog.htm", 0 }; // 生成目录下可以删除的文件. const wchar_t* BuildDirDeleteFileExt[] = { L".log", L".pdb", L".dll", L".ocx", L".lib", L".exe", 0 }; bool DelFile( const wchar_t* fileName) { SetFileAttributesW( fileName,FILE_ATTRIBUTE_NORMAL); if(DeleteFileW( fileName) ) { return true; } else { return false; } } bool IsFileNameMatch( const wstring& fileName, const wchar_t* pExt ) { int offset = fileName.length() - wcslen( pExt ); if ( offset < 0 ) { return false; } for ( size_t i=offset;i < fileName.length(); ++i ) { if ( tolower( fileName[i] ) != tolower( pExt[i-offset]) ) { return false; // 不想等. } } return true; } bool IsFileNameMatch( const wstring& fileName, const wchar_t** ppExt ) { while( *ppExt ) { if ( IsFileNameMatch( fileName, *ppExt ) ) { return true; } ppExt++; } return false; } // 文件是否可以直接删除. bool IsFileDirectDeleted( const wstring& fileName ) { return IsFileNameMatch( fileName, DirectDeleteFileExt ); } // 文件是否可以在生成目录下删除. bool ClearFolder( const wstring& folderPath, bool isProjectDir = false ) { wstring keyWord = folderPath; keyWord += L"\\*"; WIN32_FIND_DATAW fdata = http://www.mamicode.com/{0}; >
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。