清除工程目录下多余的文件及文件夹
来源:互联网 发布:js动态生成div 编辑:程序博客网 时间:2024/05/22 05:05
可以清除一个工程目录下所有工程的多余的临时文件 以及Debug,Release文件夹,和Debug,Release文件夹下所有的内容
实现比较简单 :
#include "stdafx.h"#include<windows.h>#include<iostream>#include<string>using namespace std;void DelDirFile(char* lpPath){ char szFile[MAX_PATH] = ""; char szFind[MAX_PATH] = ""; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"//*.*"); HANDLE hFind=::FindFirstFile(szFind,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) { return ; } while(TRUE) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (strcmp(FindFileData.cFileName,".svn") == 0) { strcpy(szFile,lpPath); strcat(szFile,"//"); strcat(szFile,FindFileData.cFileName); DelDirFile(szFile); cout<<szFile<<endl; if (!RemoveDirectory(szFile)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szFile,FindFileData.dwFileAttributes); RemoveDirectory(szFile); } } memset(szFile,0,MAX_PATH); } if(FindFileData.cFileName[0]!='.') { strcpy(szFile,lpPath); strcat(szFile,"//"); strcat(szFile,FindFileData.cFileName); DelDirFile(szFile); cout<<szFile<<endl; if (!RemoveDirectory(szFile)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szFile,FindFileData.dwFileAttributes); RemoveDirectory(szFile); } } memset(szFile,0,MAX_PATH); } } else { strcpy(szFile,lpPath); strcat(szFile,"//"); strcat(szFile,FindFileData.cFileName); cout<<szFile<<endl; if (!::DeleteFile(szFile)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szFile,FindFileData.dwFileAttributes); ::DeleteFile(szFile); } } memset(szFile,0,MAX_PATH); } if(!FindNextFile(hFind,&FindFileData)) break;//如果没有找到下一个文件,结束本次循环 } FindClose(hFind);}void find(char * lpPath){ char szFile[MAX_PATH] = ""; char szFind[MAX_PATH] = ""; WIN32_FIND_DATA FindFileData; strcpy(szFind,lpPath); strcat(szFind,"//*.*"); HANDLE hFind=::FindFirstFile(szFind,&FindFileData); if(INVALID_HANDLE_VALUE == hFind) { return ; } char szDel[MAX_PATH] = ""; while(TRUE) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { if (strcmp(FindFileData.cFileName,".svn") == 0) { strcpy(szFile,lpPath); strcat(szFile,"//"); strcat(szFile,FindFileData.cFileName); DelDirFile(szFile); cout<<szFile<<endl; if (!RemoveDirectory(szFile)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szFile,FindFileData.dwFileAttributes); RemoveDirectory(szFile); } } memset(szFile,0,MAX_PATH); } if(FindFileData.cFileName[0]!='.') { strcpy(szFile,lpPath); strcat(szFile,"//"); strcat(szFile,FindFileData.cFileName); if ((strcmp(FindFileData.cFileName,"release") == 0) || (strcmp(FindFileData.cFileName,"debug") == 0) || (strcmp(FindFileData.cFileName,"Debug") == 0) || (strcmp(FindFileData.cFileName,"Release") == 0)) { DelDirFile(szFile); cout<<szFile<<endl; if (!RemoveDirectory(szFile)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szFile,FindFileData.dwFileAttributes); RemoveDirectory(szFile); } } memset(szFile,0,MAX_PATH); } else { find(szFile); } } } else { char* suffix = strrchr(FindFileData.cFileName,'.'); if (suffix != NULL) { if ((strcmp(suffix,".ncb") == 0) || (strcmp(suffix,".svn") == 0) || (strcmp(suffix,".user") == 0) || (strcmp(suffix,".tmp") == 0)) { strcpy(szDel,lpPath); strcat(szDel,"//"); strcat(szDel,FindFileData.cFileName); cout<<szDel<<endl; if (!::DeleteFile(szDel)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szDel,FindFileData.dwFileAttributes); ::DeleteFile(szDel); } } memset(szDel,0,MAX_PATH); } } else { strcpy(szDel,lpPath); strcat(szDel,"//"); strcat(szDel,FindFileData.cFileName); cout<<szDel<<endl; if (!::DeleteFile(szDel)) { if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) { FindFileData.dwFileAttributes &= ~FILE_ATTRIBUTE_READONLY; SetFileAttributes(szDel,FindFileData.dwFileAttributes); ::DeleteFile(szDel); } } memset(szDel,0,MAX_PATH); } } if(!FindNextFile(hFind,&FindFileData)) break;//如果没有找到下一个文件,结束本次循环 } FindClose(hFind);}int _tmain(int argc, _TCHAR* argv[]){ char pBuf[MAX_PATH]; GetCurrentDirectory(MAX_PATH,pBuf); find(pBuf); //find("D://test"); system("PAUSE"); return 0;}
0 0
- 清除工程目录下多余的文件及文件夹
- webpack清除打包文件夹中多余的js文件
- C# 递归复制文件夹及文件夹目录下的文件
- 清除多余的歌词文件
- java 把A文件夹下的目录及文件拷贝到B 目录文件夹下
- 列出某个文件夹下的文件及目录
- java file删除目录下的文件及文件夹
- ListView获取指定目录下的所有文件及文件夹
- php复制目录下的所有文件及文件夹
- 遍历指定目录下的所有文件及文件夹
- unity 之 安装目录下的文件及文件夹分析
- php复制目录下的所有文件及文件夹
- 如何查找特定目录下最大的文件及文件夹
- C# 删除目录下的所有文件及子文件夹
- Android 删除目录下的所有文件以及文件夹及遍历文件夹下面的文件
- Delphi 计算指定目录下所有文件的大小(遍历文件夹所有文件及目录)
- Visual Studio 2010工程目录下的ipch文件夹和.sdf文件
- Visual Studio 2010工程目录下的ipch文件夹和.sdf文件
- RED5集成到tomcat,通过外网访问流媒体服务器中的视频时出错问题解决
- keepalived配置文件详解
- ZOJ1709
- 如何修改oracle用户名和密码
- WEP,WPA-PSK,WPA2-PSK握手深入分析2--CCMP(AES)加密和解密
- 清除工程目录下多余的文件及文件夹
- 智能手表的交互
- Xcode安装低版本的SDK(在Xcode里下载不了的情况下)
- Starling Feathers Controls Button
- 简洁大方 APC移动电源开箱评测
- Mysql 获取当前时间的前几天和字段中的时间进行比较
- 【android】TextView文本的 “选择文字”“复制” “粘贴” 功能的实现
- 黑马程序员_iso入门基础学习_C语言day7
- iOS中assign、copy 、retain等关键字的含义