zoukankan      html  css  js  c++  java
  • 一个遍历所有文件夹的例子

    只是给出那个最核心的函数,他只是对文件夹感兴趣。


    bool EnumDirectory(TCHAR *dirpath)

    {

     WIN32_FIND_DATA fd;

     TCHAR szTempFileFind[MAX_PATH] = { 0 };

     bool bIsFinish = false;

     ZeroMemory(&fd, sizeof(WIN32_FIND_DATA));

     wsprintf(szTempFileFind, L"%s\\*.*", dirpath);

     HANDLE hFind = FindFirstFile(szTempFileFind, &fd);

     if (hFind == INVALID_HANDLE_VALUE)

     {

      return false;

     }

     while (!bIsFinish)

     {

      if ((StrCmp(fd.cFileName, L".") != 0) && (StrCmp(fd.cFileName, L"..") != 0))

      { //过滤掉代表本级和上级的文件夹

       TCHAR szFoundFileName[MAX_PATH] = { 0 };

       StrCpy(szFoundFileName, fd.cFileName);

       if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

       { //只对文件夹感兴趣

          // do what you want;

        EnumDirectory(szTempDir);//递归调用

       }

      }

      bIsFinish = (FindNextFile(hFind, &fd)) ? false : true;


     }

     FindClose(hFind);

     return 0;

    }

    一般的用法如下,

    for(i='A';i<='Z';i++)

     {

      WCHAR x[20]={i,':'};

      UINT Type=GetDriveType(x); //对磁盘分区进行逐个类型匹配

      if(Type == DRIVE_NO_ROOT_DIR)
       MessageBox(NULL,TEXT("DRIVE_NO_ROOT_DIR"),TEXT(""),MB_OK);

      if(Type==DRIVE_FIXED||Type==DRIVE_REMOVABLE)//取硬盘和移动磁盘

      {

       EnumDirectory(x);//进行感染 此函数下面介绍

      }

     }

  • 相关阅读:
    匿名方法
    优化从 App.config 读取配置文件
    显示(explicit )与隐式(implicit)转换操作符
    ( 转 ) 聊一聊C#的Equals()和GetHashCode()方法
    协变和逆变
    html frameset的介绍
    html <frame>标签使用
    html <table>标签信息
    html 列表相关信息
    html <form>相关表单
  • 原文地址:https://www.cnblogs.com/aicro/p/1643670.html
Copyright © 2011-2022 走看看