删除文件夹下所有文件

来源:互联网 发布:淘宝女装店铺top排行榜 编辑:程序博客网 时间:2024/04/30 15:21

删除data文件夹下的所有文件

<span style="font-family:SimSun;font-size:18px;">
int main(){szSubDir=“C://data”;WIN32_FIND_DATA stFindData;HANDLE hFind = INVALID_HANDLE_VALUE;char szSearch[MAX_PATH] = {0}, szFile[MAX_PATH] = {0};sprintf(szSearch, "%s\\*.*", szSubDir);hFind = FindFirstFile(szSearch, &stFindData);if (hFind == INVALID_HANDLE_VALUE){//没有找到文件则删除指定的空目录(空文件夹)RemoveDirectory(szSubDir);return 0;}while (true){//如果不是目录(空文件夹),即如果是文件if ((stFindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0){ if (strcmp(stFindData.cFileName, ".") && strcmp(stFindData.cFileName, "..")) {   sprintf(szFile, "%s\\%s", szSubDir, stFindData.cFileName);   //删除此文件   DeleteFile(szFile); }Sleep(1);}//遍历删除下一个文件if (!FindNextFile(hFind, &stFindData)){break;}}FindClose(hFind);hFind = INVALID_HANDLE_VALUE;//删除文件夹中的文件之后,要删除此空文件夹RemoveDirectory(szSubDir);}return 1;}</span>


if (strcmp(stFindData.cFileName, ".") && strcmp(stFindData.cFileName, ".."))判断的解释说明:

    //作用是过滤当前目录和上一级目录
   //就编程的角度,Windows把文件(File)和目录(Directory)都当作同样的对象看待,
  //因此cFileName虽然是File的名称,但其实File和Directory都算在里面的。 
 //因此FindFirstFile和FindNextFile都会返回.和..这两个所谓的文件。所以要对此2个文件进行过滤。

0 0